front-end/JavaScript

[JavaScript] 28. Number

gaan 2023. 6. 20. 11:21

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진법으로 지정

 

 

📖 참고자료

https://www.inflearn.com/course/%EB%AA%A8%EB%8D%98-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EB%94%A5%EB%8B%A4%EC%9D%B4%EB%B8%8C/dashboard