[JavaScript] 모던 자바스크립트 Deep Dive 28장 - Number

2022. 8. 19. 20:54Web/JavaScript


Number 생성자 함수

표준 빌트인 객체인 Number 객체는 생성자 함수 객체다. 따라서 new 연산자와 함께 호출하여 Number 인스턴스를 생성할 수 있다.

const numObj = new Number();
console.log(numObj); // [Number: 0]

const numObj = new Number(10);
console.log(numObj); // [Number: 10]

Number 프로퍼티

Number.EPSILON

ES6에서 도입된 Number.EPSILON은 1과 1보다 큰 숫자 중에서 가장 작은 숫자와의 차이와 같다.


Number.MAX_VALUE

자바스크립트에서 표현할 수 있는 가장 큰 양수 값이다. Number.MAX_VALUE보다 큰 숫자는 Infinity다.


Number.MIN_VALUE

자바스크립트에서 표현할 수 있는 가장 작은 양수 값이다. Number.MIN_VALUE보다 작은 숫자는 0이다.


Number.MAX_SAFE_INTEGER

자바스크립트에서 안전하게 표현할 수 있는 가장 큰 정수값이다.


Number.MIN_SAFE_INTEGER

자바스크립트에서 안전하게 표현할 수 있는 가장 작은 정수값이다.


Number.POSITIVE_INFINITY

양의 무한대를 나타내는 숫자값 Infinity와 같다.


Number.NAGATIVE_INFINITY

음의 무한대를 나타내는 숫자값 -Infinity와 같다.


Number.NaN

숫자가 아님을 나타내는 숫자값이다. window.NaN과 같다.


Number 메서드

Number.isFinite

ES6에서 도입된 Number.isFinite 정적 메서드는 인수로 전달된 숫자값이 Infinity또는 -Infinity가 아닌지 검사하여 그 결과를 불리언 값으로 반환한다.

// 인수가 정상적인 유한수이면 true를 반환한다.
Number.isFinite(0); // true
Number.isFinite(Number.MAX_VALUE); // true
Number.isFinite(Number.MIN_VALUE); // true

// 인수가 무한수이면 false를 반환한다.
Number.isFinite(Infinity); // false
Number.isFinite(-Infinity); // false

// 인수가 NaN이면 언제나 false를 반환한다.
Number.isFinite(NaN); // false

// Number.isFinite는 인수를 숫자로 암묵적 타입 변환하지 않는다.
Number.isFinite(null); // false

// isFinite는 인수를 숫자로 암묵적 타입 변환한다. null은 0으로 타입 변환된다.
isFinite(null); // true

Number.isInteger

ES6에서 도입된 Number.isInteger 정적 메서드는 인수로 전달된 숫자값이 정수인지 검사하여 그 결과를 불리언 값으로 반환한다. 검사하기 전에 인수를 숫자로 암묵적 타입 변환하지 않는다.

// 인수가 정수이면 true를 반환한다.
Number.isInteger(0); // true
Number.isInteger(123); // true
Number.isInteger(-123); // true

// 0.5는 정수가 아니다.
Number.isInteger(0.5); // false
// '123'을 숫자로 암묵적 타입 변환하지 않는다.
Number.isInteger('123'); // false
// false를 숫자로 암묵적 타입 변환하지 않는다.
Number.isInteger(false); // false
// Infinity/-Infinity는 정수가 아니다.
Number.isInteger(Infinity); // false
Number.isInteger(-Infinity); // false

Number.isNaN

ES6에서 도입된 Number.isNaN 정적 메서드는 인수로 전달된 숫자값이 NaN인지 검사하여 그 결과를 불리언 값으로 반환한다.

// 인수가 NaN이면 true를 반환한다.
Number.isNaN(NaN); // true

// Number.isNaN은 인수를 숫자로 암묵적 타입 변환을 하지 않는다.
Number.isNaN(undefined); // false

// isNaN은 인수를 숫자로 암묵적 타입 변환한다. undefined는 NaN으로 암묵적 타입 변환한다.
isNaN(undefined); // true

Number.isSafeInteger

인수로 전달된 숫자값이 안전한 정수인지 검사하여 그 결과를 불리언 값으로 반환한다.


Number.prototype.toExponential

숫자를 지수 표기법으로 변환하여 문자열로 반환한다.


Number.prototype.toFixed

숫자를 반올림하여 문자열로 반환한다. 인수를 생략하면 기본값이 0이 된다.


Number.prototype.toPrecision

인수로 전달받은 전체 자리수까지 유효하도록 나머지 자리수를 반올림하여 문자열로 반환한다.


Number.prototype.toString

숫자를 문자열로 변환하여 반환한다. 인수를 생략하면 기본값 10진법이 지정된다.