1.숫자
JavaScript에서 모든 숫자는 double-precision 64-bit binary format IEEE 754로( ±2^−1022 과 ±2^+1023 또는 ±10^−308 to ±10^+308 사이의 숫자 또는 53bits의 수치정밀도)로 구현되어 있습니다. ±2^53 - 1까지의 정수 값을 정확하게 나타낼 수 있습니다,
부동 소수점 숫자를 나타낼 수 있으며, 숫자 형식은 세 개의 상징적인 값 +Infinity, -Infinity, and NaN (숫자가 아닌 값)을 갖습니다. JavaScript에서 최근 추가 된 것은 BitInt로, 매우 큰 정수를 나타낼 수 이습니다. 사용시 BitInt와 Number 값을 같은 연산으로 혼합하고 일치시킬 수 없으며 Math 객체를 BitInt값과 함께 사용할 수 있습니다.
10진수
1234567890;
42;
// 앞에 0이 붙은 숫자 주의
0888; // 10진수 888로 해석
0777; // non-strict mode 에서 10진수 511로 해석
10진수 리터럴도 영(0)으로 시작될 수 있습니다. 만약 0 다음 숫자가 8보다 작으면, 그 숫자는 8진법으로 해석됩니다.
2진수
2진수 구문은 앞에 0과 소문자 또는 대문자 라틴문자 "B"(0B 또는 0b)를 사용합니다. 0b 다음 숫자가 0 또는 1이 아니면 다음에 SyntaxError가 발생합니다. "0b 이후 누락된 2 진수"("Missing binary digits after 0b")입니다.
var FLT_sign_bit = 0b10000000000000000000000000000000; // 2147483648
var FLT_EXPONENT = 0b01111111100000000000000000000000; // 2139095040
var FLT_MANTISSA = 0b00000000011111111111111111111111; // 8388607
console.log(FLT_EXPONENT);
console.log(FLT_sign_bit);
console.log(FLT_MANTISSA);
8진수
8 진수 구문은 앞에 0을 사용합니다. 0 이후 숫자가 0에서 7까지 범위 밖에 있는 경우, 숫자는 10진수로 해석됩니다.
// 8 진수
var a = 0755; // 493
var m = 0644; // 420
console.log(a);
console.log(m);
ECMAScript 5의 Strict 모드는 8 진수 구문을 금지하고, 8진수 구문은 ECMAScript5의 일부가 아니지만, 0644 === 420 및 "\ 045"=== "%"의 8진수에 접두사를 붙이면 모든 브라우저에 지원됩니다. 접두어가 0o인 경우 8진수가 지원됩니다.
var c = 0o11; // ES2015: 8 result: 9
console.log(c);
16진수
16진수 구문은 앞에 0 다음에 소문자나 다문자 라틴어 문자 "X"를 사용합니다. 0X이후 숫자가 범위(0123456789ABCDEF)밖에 있는 경우, 다음 SyntaxError가 발생합니다.
console.log(0xffffffffffffff); // 72057594037927940
console.log(0x123456789abcdef); // 81985529216486900
console.log(0xa); // 10
2. Number 객체
Number 내장객체는 최대값, not-a-number, 무한대와 같은 숫자 상수를 위한 속성들이 있습니다.
var biggestNum = Number.MAX_VALUE;
var smallestNum = Number.MIN_VALUE;
var infiniteNum = Number.POSITIVE_INFINITY;
var negIntfiniteNum = Number.NEGATIVE_INFINITY;
var notANum = Number.NaN;
console.log(biggestNum); // 1.7976931348623157e+308
console.log(smallestNum); // 2.5e-324
console.log(infiniteNum); // 3.Infinity
console.log(negIntfiniteNum); // 4. -Infinity
console.log(notANum); // 5.NaNa
직접 생성한 Number 객체의 속성이 아닌, 위와같이 항상 미리 정의된 Number 객체의 속성을 참조해야합니다.
Number 프로토 타입은 다양한 Number 객체에서 정보를 검색하는 메소드를 제공합니다.
3.Math 객체
내장 Math 객체는 수학 상수 및 함수에 대한 속성 및 메서드를 포함합니다. 예를 들어 Math 객체의 PI 속성에는 pi(3.141...) 값이 있습니다.
console.log(Math.PI) // 3.141592653589793
마찬가지로 표준 수학 함수도 Math의 함수이며, 여기에 삼각함수, 로그 함수, 지수 함수 및 기타 함수가 포함됩니다.
console.log(Math.sin(1.56)); // 0.9999417202299663
Math의 모든 삼각 함수에는 라디안으로 매게변수를 입력해야합니다.
4. Date 객체
JavaScript에서 날짜 데이터 타입은 없습니다. 그러나 Date 객체와 그 메소드를 사용하면 응용 프로그램에서 날짜와 시간을 처리할 수 잇습니다. Date 객체에는 날짜 설정, 가져 오기 및 조작을 위한 많은 메소드가 있습니다.
var dateObjectName = new Date([paraments]);
여기서 dateObjectName은 만드려는 Date 객체의 이름입니다. 새로운 객체 또는 기존 객체의 속성일 수 있습니다. new 키워드없이 Date를 호출하려면 현재 날짜와 시간을 나타내는 문자열이 반환됩니다. 앞 구문에 parameters는 아래 규칙을 따릅니다.
- 아무것도 없을 때: 오늘의 날짜와 시간을 만듬( today = new Date(); )
- 날짜를 나타내는 문자열의 형식: "Month day, year hours:minutes:seconds."
- 정수 값의 연도, 월, 날의 집합
- 연도, 월, 일, 시, 분, 초 동안 정수 값의 집합입니다.
Date 개체의 표현 방법
날짜와 시간을 조절하는 Date객체표현 방법은 아래 종류로 나누어 집니다.
- "set" 함수, 날짜 개체 안에서의 날짜 및 시간 값을 설정
- "get" 함수, 날짜 개체 안에서의 날짜 및 시간 값을 얻음
- "to" 함수, 날짜 개체로부터 문자열 값을 반환
- Date 문자열을 분석하기위해 parse와 UTC함수를 사용합니다.
"get"및 "set"메소드를 사용하여 초,분,시,일,요일, 월 및 연도를 별도로 가져와 설정할 수 있고, 요일이 자동적으로 설정되기때문에 요일을 돌려주는 getDay 메소드가 있으나, 대응하는 setDay 메소드는 없습니다.
- 초와 분: 0 to 59
- 시간: 0 to 23
- 요일: 0 (Sunday) to 6 (Saturday)
- 날짜: 1 to 31 (day of the month)
- 월: 0 (January) to 11 (December)
- 연도: years since 1900
var Xmas25 = new Date("December 25, 2025");
console.log(Xmas25);
Xmas25.getMonth()는 12를 반환합니다. 그리고 Xmas25.getFullYear()는 2025를 반환합니다. getTime과 setTime 방법들은 날짜를 나눌때 유용합니다. getTime함수는 Date 객체에 대해 1970년 1월 1일 00:00시 부터 밀리초단위로 리턴합니다.
var today = new Date(); // 현재시간
var endYear = new Date(2015, 2, 6, 23, 59, 59, 999); // Set day and month;
endYear.setFullYear(today.getFullYear()); // Set Year to this year;
console.log(today, endYear);
var msPerDay = 24 * 60 * 60 * 1000; // Number of milliseconds per day
var daysLeft = (endYear.getTime() - today.getTime) / msPerDay;
var daysLeft = Math.round(daysLeft); // returns days left in the year
console.log(msPerDay);
이 예제에는 오늘 날짜가 포함된 today라는 명칭을 가진 Date 객체를 만들고 endYear이라는 Date객체를 만들어 현재연도를 설정합니다. 그런 다음 하루에 밀리 초 수를 사용하여 getTime을 사용하고 전체 일 수를 반올림해 today와 endYear 사이의 일 수를 계산합니다. Perse 함수는 날짜문자열부터 기존의 Date 객체까지의 값을 할당하기에 유리합니다.
function Clock() {
var time = new Date(); // 현재 날짜와 시간을 time 변수에 담음
var hour = time.getHours(); // 현재 시간의 시(0~23)를 반환
var minute = time.getMinutes(); // 현재 시간의 분(0~23)를 반환
var second = time.getSeconds(); // 현재 시간의 초(0~59)를 반환환
var temp = "" + (hour > 12 ? hour - 12 : hour); // 24시간 형식을 12시간 형식으로 변환
if (hour == 0) temp = "12"; // 0시(자정)인 경우 "12"로 변경
temp += (minute < 10 ? ":0" : ":") + minute; // 분과 초 10보다 작은 겨웅 앞에 "0"추가해 두자리로 만듬
temp += (second < 10 ? ":0" : ":") + second;
temp += hour >= 12 ? "P.M" : "A.M"; // hour이 12보다 높거나 낮을 경우 "P.M" 아닐 경우 "A.M"
return temp; // 결과 반환
}
console.log(Clock());
참고 자료
숫자와 날짜 - JavaScript | MDN
이 장에서는 JavaScript에서 숫자와 날짜를 사용하기 위한 개념과 객체, 함수에 대해 소개합니다. 그리고 숫자를 10진법, 2진법, 16진법 등의 다양한 형태로 표현하는 방법과 더불어 Math 객체를 사용
developer.mozilla.org
GitHub - javascript-only/javascript-bloging
Contribute to javascript-only/javascript-bloging development by creating an account on GitHub.
github.com
'Front-End > JavaScript' 카테고리의 다른 글
[Javascript] 8강 Index 기반 컬렉션 (0) | 2025.02.08 |
---|---|
[Javascript] 7강 정규 표현식 (0) | 2025.02.07 |
[Javascript] 5강 표현식과 연산자 (2) | 2025.02.06 |
[Javascript] 4강 함수 (0) | 2025.02.05 |
[Javascript] 3강 제어문 (0) | 2025.02.05 |