28장 Number
표준 빌트인 객체(standard built-in object)인 Number는 원시 타입인 숫자를 다룰 때 유용한 프로퍼티와 메소드를 제공한다.
1 Number 생성자 함수
표준 빌트인 객체인 Number 객체는 생성자 함수 객체다. 따라서 new 연산자와 함께 호출하여 Number 인스턴스를 생성할 수 있다.
Number 생성자 함수에 인수를 전달하지 않고 new 연산자와 함께 호출하면 [[NumberData]] 내부 슬롯에 0을 할당한 Number 래퍼 객체를 생성한다.
문자를 전달할 경우 NaN을 할당한다.
2 Number 프로퍼티
2.1 Number.EPSILON
Number.EPSILON는 1과 1보다 가장 큰 숫자중에서 가장 작은 숫자와의 차이와 같다.
Number.EPSILON은 약 2.2204460492503130808472633361816 x 10 **-16이다.
자바스크립트에서는 부동소수점 산술 연산은 정확한 결과를 기대하기 어렵다. 정수는 2진법으로 오차없이 저장이 가능하지만 부동소수점을 표현하기 위해 가장 널리 쓰이는 표준인 IEEE 754는 2진법으로 변환했을 때 무한 소수가 되어 오차가 발생할 수밖에 없는 구조적 한계가 있다.
2.2 Number.MAX_VALUE
Number.MAX_VALUE는 자바스크립트에서 표현할 수 있는 가장 큰 양수 값이다. 이보다 큰 값은 Infinity이다.
2.3 Number.MIN_VALUE
Number.MIN_VALUE는 자바스크립트에서 표현할 수 있는 가장 작은 양수 값이다. 이보다 작은 값은 0이다.
2.4 Number.MAX_SAFE_INTEGER
Number.MAX_SAFE.INTEGER은 자바스크립트에서 가장 안전하게 표현할 수 있는 가장 큰 정수값이다.
2.5 Number.MIN_SAFE_INTEGER
Number.MIN_SAFE_INTEGER은 자바스크립트에서 가장 안전하게 표현할 수 있는 가장 작은 정수값이다.
2.6 Number.POSITIVE_INFINITY
Number.POSITIVE_INFINITY 은 양의 무한대를 나타내는 숫자값 Infinity와 같다.
2.7 Number.NEGATIVE_INFINITY
Number.NEGATIVE_INFINITY는 음의 무한대를 나타내는 숫자값 -Infinity와 같다.
2.8 Number.NaN
Number.NaN은 숫자가 아님을 나타내는 숫자값이다.
3 Number 메소드
3.1 Number.isFinite
Number 타입의 인수로 전달된 값이 유한수인지 검사. 맞으면 결과를 불리언 값으로 나타낸다.
isFinite는 숫자를 암묵적으로 변환한다.
3.2 Number.isInteger
인수가 정수인지 확인한 후 불리언 값으로 반환한다. 숫자를 암묵적 타입변환을 하지 않는다.
3.3 Number.isNaN
인수가 NaN인지 확인한 후 불리언 값으로 반환한다.
Number.isNaN 메소드는 전달받은 인수를 암묵적으로 변환하지 않는다 따라서 숫자가 아닌 인수가 주어졌을 경우 언제나 반환값은 false이다.
3.4 Number.isSafeInteger
인수가 안전한 정수인지 검사하여 결과를 불리언 값으로 반환한다.
안전한 정수값은 -(253 -1)과 253 -1 사이의 정수값이다. 검사전에 암묵적으로 타입변환하지 않는다.
3.5 Number.prototype.toExponential
숫자를 지수표기법으로 변환하여 문자열을 반환한다.
지수표기법
지수표기법이란 매우 크거나 작은 숫자를 표기할 때 주로 사용하며 e(Exponent) 앞에 있는 숫자에 10의 n승을 곱하는 형식으로 수를 나타내는 방식이다. 인수로 소수점 이하 자릿수를 지정할 수 있다.
숫자 리터럴에 Number 프로토타입 메소드를 사용할 경우 에러가 발생한다.
3.6 Number.prototype.toFixed
toFixed 메소드는 숫자를 반올림하여 문자열로 반환한다. 0 ~ 20사이의 정수 값을 반올림하는 소수점 이하 자릿수의 인수로 전달할 수 있고 Default 값은 0이다.
3.7 Number.prototype.toPrecision
toPrecision( ) 메소드는 인수로 전달받는 전체 자릿수까지 유효하도록 나머지 자릿수를 반올림하여 문자열로 반환한다.
전체 자릿수를 나타내는 0 ~ 21 사이의 정수값을 인수로 전달할 수 있다. Default 값은 0이다.
3.8 Number.prototype.toString
숫자를 문자열로 변환하여 반환한다. 진법을 나타내는 2 ~ 36 사이의 정수값을 인수로 전달할 수 있다. 생략하면 기본값은 10진법이 지정된다.