[JavaScript] 28. Number
01. Number 생성자 함수
🔹 Number 객체는 표준 빌트인 객체로, 생성자 함수 객체다.
➡️ new 연산자와 함께 호출하여 Number 인스턴스를 생성할 수 있다.
1. Number 생성자 함수에 인수 전달 X, new 연산자와 함께 호출
➡️ [[NumberData]] 내부 슬롯에 0 할당한 Number 래퍼 객체 생성
const numObj = new Number();
console.log(numObj); // Number {[[PrimitiveValue]]: 0}
2. Number 생성자 함수의 인수로 숫자 전달, new 연산자와 함께 호출
➡️ [[NumberData]] 내부 슬롯에 인수로 전달받은 숫자 할당한 Number 래퍼 객체 생성
const numObj = new Number(10);
console.log(numObj); // Number {[[PrimitiveValue]]: 10}
3. Number 생성자 함수의 인수로 숫자 아닌 값 전달, new 연산자와 함께 호출
➡️ 인수를 숫자로 강제 변환 -> [[NubmerData]] 내부 슬롯에 변환된 숫자를 할당한 Number 래퍼 객체 생성
let numObj = new Number('10');
console.log(numObj); // Numer {[[PrimitiveValue]]: 10}
numObj = new Number('Hello');
console.log(numObj); // Number {[[PrimitiveValue]]: NaN}
02. Number 프로퍼티
1) Number.EPSILON
🔹 1과 1보다 큰 값 중에서 가장 작은 값의 차이
🔹 부동소수점으로 인한 오차 문제를 해결하기 위해 도입
0.1 + 0.2; // -> 0.30000000000000004
0.1 + 0.2 === 0.3; // -> false
function isEqual(a, b){
// a와 b를 뺀 값의 절대값이 Number.EPSILON보다 작으면 같은 수로 인정한다.
return Math.abs(a - b) < Number.EPSILON;
}
isEqual(0.1 + 0.2, 0.3); // -> true
2) Number.MAX_VALUE
🔹 자바스크립트에서 표현할 수 있는 가장 큰 양수 값
3) Number.MIN_VALUE
🔹 자바스크립트에서 표현할 수 있는 가장 작은 양수 값
4) Number.MAX_SAFE_INTEGER
🔹 자바스크립트에서 안전하게 표현할 수 있는 가장 큰 정수값
5) Number.MIN_SAFE_INTERER
🔹 자바스크립트에서 안전하게 표현할 수 있는 가장 작은 정수값
6) Number.POSITIVE_INFINITY
🔹 양의 무한대인 Infinity와 같다
7) Number.NEGATIVE_INFINITY
🔹 음의 무한대인 -Infinity와 같다
8) Number.NaN
🔹 숫자가 아님(Not-a-Number)을 나타내는 숫자값
03. Number 메서드
1) Number.inFinite
🔹 유한수인지 판단하는 메서드 -> 불리언 값으로 반환
⚠️ 빌트인 전역 함수인 isFinite는 인수를 숫자로 암묵적 타입 변환하지만, Number.isFinite는 숫자가 아닌 인수를 받았을 때 반환값은 항상 False이다.
2) Number.isInteger
🔹 인수로 전달된 숫자값이 정수인지 검사 -> 불리언 값으로 반환 (암묵적 타입 변환 X)
3) Number.isNaN
🔹인수로 전달된 숫자값이 NaN인지 검사 -> 불리언 값으로 반환
4) Number.isSafeInteger
🔹 인수로 전달된 숫자값이 안전한 정수인지 검사 -> 불리언 값으로 반환 (암묵적 타입 변환 X)
5) Number.prototype.toExponential
🔹 숫자를 지수 표기법으로 변환하여 문자열로 반환
6) Numbmer.prototype.toFixed
🔹 숫자를 반올림하여 문자열로 반환
🔹소수점 이하 자릿수를 나타내는 0~20 사이의 정수값을 인수로 전달 가능
7) Number.prototype.toPrecision
🔹 인수로 전달받은 전체 자릿수까지 유효하도록 나머지 자릿수를 반올림하여 문자열로 반환
8) Number.prototype.toString
🔹 숫자를 문자열로 변환하여 반환
🔹 인수값에 따라 진수법 적용
🔹 생략하면 기본값 10진법으로 지정
📖 참고자료