Number

박찬미·2024년 8월 7일
0

28.1 Number 생성자 함수

new 연산자와 함께 Number 인스턴스를 생성할 수 있다.

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

인수를 전달하지 않고 호출하면 [[NumberData]] 내부 슬롯에 0을 할당한 Number 래퍼 객체를 생성.

인수로 숫자를 전달하면 [[NumberData]] 내부 슬롯에 인수를 할당한 Number 래퍼 객체를 생성.

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

28.2 Number 프로퍼티

28.2.1 Number.EPSILON

  • ES6에서 도입되었고 1과 1보다 큰 숫자 중에서 가장 작은 숫자와의 차이와 같다.
    (->두 부동 소수점 숫자 사이의 차이가 작아서 사실상 같은 수로 간주될 때 유용)
  • 부동소수점으로 인해 발생하는 오차를 해결하기 위해 사용한다.
function isEqual(a,b){
    // a와 b를 뺀 값의 절대값이 Number.EPSILON보다 작으면 같은 수로 인정한다.
	return Math.abs(a-b) < Number.EPSILON;
}

console.log(isEqual(0.1 + 0.2, 0.3)); // true

28.2.2 Number.MAX_VALUE

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

28.2.3 Number.MIN_VALUE

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

28.2.4 Number.MAX_SAFE_INTEGER

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

28.2.5 Number.MIN_SAFE_INTEGER

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

28.2.6 Number.POSITVE_INFINITY

  • 양의 무한대를 나타내는 숫자값이다.

28.2.7 Number.NEGATIFVE_INFINITY

  • 음의 무한대를 나타내는 숫자값이다.

28.2.8 Number.NaN

  • 숫자가 아님을 나타내는 값이다.

28.3 Number 메서드

28.3.1 Number.isFinite

  • 유한수인지 검사하여 불리언으로 반환
//문법 
Number.isFinite(value);
//인수가 정상적인 유한수이면 true 반환
console.log(Number.isFinite(0)); // true
console.log(Number.isFinite(Number.MAX_VALUE)); // true
console.log(Number.isFinite(Number.MIN_VALUE)); // true

//인수가 무한수이거나 NaN이면 false 반환
console.log(Number.isFinite(Infinity)); // false
console.log(Number.isFinite(NaN)); // false

28.3.2 Number.isInteger

  • 정수인지 검사하여 불리언으로 반환
//문법
Number.isInteger(value);
//인수가 정수이면 true를 반환
console.log(Number.isInteger(10)); // true
console.log(Number.isInteger(-10)); // true
console.log(Number.isInteger(0)); // true

//인수가 소수거나,NaN,Infinity 일경우는 false를 반환
console.log(Number.isInteger(10.5)); // false
console.log(Number.isInteger(NaN)); // false
console.log(Number.isInteger(Infinity)); // false

28.3.3 Number.isNaN

  • NaN인지 검사하여 불리언으로 반환
//인수가 NaN이면 true 반환
console.log(Number.isNaN(NaN)); // true

Number.isNaN()은 isNaN()보다 더 엄격하다.
-> isNaN() 메서드는 매개변수를 강제로 Number()로 바꾸는 문제점을 가지고있다.
-> ES6(ECMAScript 2015)에서는 Number.isNaN()이 추가되었다.

28.3.4 Number.isSafeInteger

  • 인수로 전달한 숫자값이 안전한 정수인지 검사하여 불리언으로 반환
Number.isSafeInteger(value);
//안전한 정수검사 
console.log(Number.isSafeInteger(10)); // true
console.log(Number.isSafeInteger(0)); // true
//비정수 값 검사
console.log(Number.isSafeInteger(10.5)); // false
console.log(Number.isSafeInteger('10')); // false
console.log(Number.isSafeInteger(NaN)); // false
console.log(Number.isSafeInteger(Infinity)); // false
console.log(Number.isSafeInteger(-Infinity)); // false

28.3.5 Number.prototype.toExponential

프로토타입 메서드
전달 받은 인수를 지수 표기법 문자열로 반환
숫자 리터럴과 사용시 괄호를 쓸 것
.의 구분이 모호, 소수 구분 기호일 수도 있고 프로퍼티 접근 연산자일 수도 있기 때문

28.3.6 Number.prototype.toFixed

숫자를 반올림하여 문자열로 반환

//소수점 이하 반올림
(12345.6789).toFixed();  //  '12346'
(12345.6789).toFixed(1);  //  '12345.7'

28.3.7 Number.prototype.toPrecision

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

//소수점 이하 반올림
(12345.6789).toPrecision();  // '12345.6789'

28.3.8 Number.prototype.toString

숫자를 문자열로 변환하여 반환
진법을 나타내는 정수값을 인수로 전달 가능
기본값은 10진법

//인수를 생략하면 10진수 문자열 반환
(10).toString();  // '10'
profile
우당탕탕

0개의 댓글