JavaScript/모던 자바스크립트 Deep Dive
23. 표준 빌트인 객체 - Number
sandwe
2022. 8. 9. 21:52
Number는 표준 내장 객체 중 하나로, 원시 타입인 숫자를 다룰 때 유용한 프로퍼티와 메서드를 제공한다.
Number 생성자 함수
Number 표준 빌트인 객체는 생성자 함수 객체이다. new 연산자와 함께 호출해 Number 인스턴스를 생성할 수 있다.
- Number 생성자 함수에 인수를 전달하여 new 연산자와 함께 호출하면 [[NumberData]](=[[PrimitiveValue)라는 접근할 수 없는 내부 슬롯에 인수로 전달된 숫자를 할당한 Number 래퍼 객체를 생성한다.
- 인수를 전달하지 않고 호출하면 내부 슬롯에 0이 할당된다.
- 인수로 숫자가 아닌 값을 전달하면 숫자로 강제 변환 후 할당한다.
Number 메서드
Number.isFinite
- 인수로 전달된 숫자값이 정상적인 유한수(Infinity/ -Infinity 아닌 수 또는 NaN)인지 검사해 불리언 값을 반환한다.
Number.isInteger
- 인수로 전달된 숫자값이 정수인지 검사해 불리언 값을 반환한다.
Number.isNaN
- 인수로 전달된 숫자값이 NaN인지 검사해 불리언 값을 반환한다.
Number.isSafeInteger
- 인수로 전달된 숫자값이 안전한 정수인지 검사해 불리언 값을 반환한다.
- 안전한 정수값은 -(253 - 1)과 (253 - 1) 사이의 정수값이다.
Number.isFinite/ isInteger/ isNaN/ isSafeInteger 메서드 모두 전달받은 인수를 숫자로 암묵적 타입 변환해 검사하지 않는다.
그러므로 검사 조건에 만족하지 않는 값들은 모두 false이다.
이에 반해 빌트인 전역함수의 isFinite/ isNaN은 암묵적 타입 변환해 검사한다.
Number.prototype.toFixed
- 숫자를 반올림하여 문자열로 반환한다.
- 인수에는 0 ~ 20 사이의 정수값을 적어 소수점 이하 몇째 자리까지 나타낼 지를 전달한다.
- 인수 생략하면 기본값은 0이다.
(12345.6789).toFixed(); // "12346"
(12345.6789).toFixed(1); // "12345.7"
Number.prototype.toString
- 숫자를 문자열로 변환하여 반환한다.
- 진법을 나타내는 2 ~ 36 사이의 정수값을 인수로 전달한다.
- 인수 생략하면 기본값은 10진법으로 지정된다.
(10).toString(); // "10"
(16).toString(2); // "10000"