
자바스크립트의 Number 객체는 숫자 값을 다루기 위해 제공되는 표준 빌트인 객체이다. 숫자 값을 표현하고 조작할 수 있는 다양한 정적 속성과 메서드를 포함하고 있으므로 정리하고 넘어가보자.
new 연산자와 함께 호출하여 Number 인스턴스를 생성할 수 있다.new 연산자와 함께 호출하면 [[NumberData]](ES5에서는 [[PrimitiveValue]]) 내부 슬롯에 0을 할당한 Number 래퍼 객체를 생성한다.const numObj = new Number();
console.log(numObj); // Number { [[PrimitiveValue]]: 0 }
new 연산자를 사용하지 않고 Number 생성자 함수를 호출하면 Number 인스턴스가 아닌 숫자를 반환한다.Number('0'); // 0
Number('-1'); // -1
2^(-52) = 2.220446049250313e-16 정도의 값let a = 0.1 + 0.2;
console.log(a === 0.3); // false
// Number.EPSILON을 사용해 비교
function isCloseEnough(a, b) {
return Math.abs(a - b) < Number.EPSILON;
}
console.log(isCloseEnough(a, 0.3)); // true
Number.MAX_VALUE; // 1.7976931348623157e+308
Number.MIN_VALUE; // 5e-324
Number.MAX_SAFE_INTEGER; // 9007199254740991
Number.MIN_SAFE_INTEGER; // -9007199254740991
Number.POSITIVE_INFINITY; // Infinity
Number.NEGATIVE_INFINITY; // -Infinity
Number.NaN은 window.NaN과 같다.Number.NaN; // NaN
Number.isFinite(10); // true
Number.isFinite(Infinity); // false
Number.isInteger(10); // true
Number.isInteger(10.5); // false
NaN인지 확인한다.Number.isNaN(NaN); // true
Number.isNaN(10); // false
Number.isSafeInteger(10); // true
Number.isSafeInteger(Math.pow(2, 53)); // false
Number.parseFloat("10.5"); // 10.5
Number.parseInt("10"); // 10
Number.parseInt("10", 2); // 2진수 해석, 결과는 2
let num = 10.567;
num.toFixed(2); // "10.57"
let num = 12345;
num.toExponential(2); // "1.23e+4"
let num = 123.456;
num.toPrecision(4); // "123.5"
let num = 255;
num.toString(16); // "ff" (16진수)