JS number 래퍼 객체

Number 객체는 원시 타입 number를 다룰 때 유용한 프로퍼티와 메소드를 제공하는 레퍼(wrapper) 객체이다. 변수 또는 객체의 프로퍼티가 숫자를 값으로 가지고 있다면 Number 객체의 별도 생성없이 Number 객체의 프로퍼티와 메소드를 사용할 수 있다.

Number Constructor

Number 객체는 Number() 생성자 함수를 통해 생성할 수 있다.

1
new Number(value);
  • 만일 인자가 숫자로 변환될 수 없다면 NaN을 반환한다.
  • Number() 생성자 함수를 new 연산자를 붙이지 않아 생성자로 사용하지 않으면 Number 객체를 반환하지 않고 원시 타입 숫자를 반환한다. (형변환이 발생할 수 있음)
  • 일반적으로 숫자를 사용할 때는 원시 타입 숫자를 사용한다.

Number Property

정적(static) 프로퍼티로 Number 객체를 생성할 필요없이 Number.propertyName의 형태로 사용한다.

Number.EPSILON ES6

Number.EPSILON은 JavaScript에서 표현할 수 있는 가장 작은 수이다. 부동소수점의 비교는 Number.EPSILON을 사용하여 비교 기능을 갖는 함수를 작성하여야 한다.

1
2
3
4
5
6
7
8
console.log(0.1 + 0.2);        // 0.30000000000000004
console.log(0.1 + 0.2 == 0.3); // false

function isEqual(a, b){
return Math.abs(a - b) < Number.EPSILON;
}

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

Number.MAX_VALUE ES1

자바스크립트에서 사용 가능한 가장 큰 숫자(1.7976931348623157e+308)를 반환한다. MAX_VALUE보다 큰 숫자는 Infinity이다.

1
2
3
4
5
6
Number.MAX_VALUE; // 1.7976931348623157e+308

var num = 10;
num.MAX_VALUE; // undefined

console.log(Infinity > Number.MAX_VALUE); // true

Number.MIN_VALUE ES1

자바스크립트에서 사용 가능한 가장 작은 숫자(5e-324)를 반환한다. MIN_VALUE는 0에 가장 가까운 양수 값이다. MIN_VALUE보다 작은 숫자는 0으로 변환된다.

1
2
3
4
5
6
Number.MIN_VALUE; // 5e-324

var num = 10;
num.MIN_VALUE; // undefined

console.log(Number.MIN_VALUE > 0); // true

Number.POSITIVE_INFINITY ES1

양의 무한대 Infinity를 반환한다.

1
2
3
4
Number.POSITIVE_INFINITY // Infinity

var num = 10;
num.POSITIVE_INFINITY; // undefined

Number.NEGATIVE_INFINITY ES1

음의 무한대 -Infinity를 반환한다.

1
2
3
4
Number.NEGATIVE_INFINITY // -Infinity

var num = 10;
num.NEGATIVE_INFINITY; // undefined

Number.NaN ES1

숫자가 아님(Not-a-Number)을 나타내는 숫자값이다. Number.NaN 프로퍼티는 window.NaN 프로퍼티와 같다.

1
2
3
console.log(Number('xyz')); // NaN
console.log(1 * 'string'); // NaN
console.log(typeof NaN); // number

Number Method

Number.isFinite(testValue: number): boolean ES6

매개변수에 전달된 값이 정상적인 유한수인지를 검사하여 그 결과를 Boolean으로 반환한다.

Number.isFinite()는 전역 함수 isFinite()와 차이가 있다. 전역 함수 isFinite()는 인수를 숫자로 변환하여 검사를 수행하지만 Number.isFinite()는 인수를 변환하지 않는다. 따라서 숫자가 아닌 인수가 주어졌을 때 반환값은 언제나 false가 된다.

1
Number.isFinite(testValue)

Number.isInteger(testValue: number): boolean ES6

매개변수에 전달된 값이 정수(Integer)인지 검사하여 그 결과를 Boolean으로 반환한다. 검사전에 인수를 숫자로 변환하지 않는다.

1
Number.isInteger(testValue)

Number.isNaN(testValue: number): boolean ES6

매개변수에 전달된 값이 NaN인지를 검사하여 그 결과를 Boolean으로 반환한다.

Number.isNaN()는 전역 함수 isNaN()와 차이가 있다. 전역 함수 isNaN()는 인수를 숫자로 변환하여 검사를 수행하지만 Number.isNaN()는 인수를 변환하지 않는다. 따라서 숫자가 아닌 인수가 주어졌을 때 반환값은 언제나 false가 된다.

1
Number.isNaN(testValue)

Number.isSafeInteger(testValue: number): boolean ES6

매개변수에 전달된 값이 안전한(safe) 정수값인지 검사하여 그 결과를 Boolean으로 반환한다. 검사전에 인수를 숫자로 변환하지 않는다.

1
Number.isSafeInteger(testValue)

Number.prototype.toExponential(fractionDigits?: number): string ES3

대상을 지수 표기법으로 변환하여 문자열로 반환한다. 지수 표기법이란 매우 큰 숫자를 표기할 때 주로 사용하며 e(Exponent) 앞에 있는 숫자에 10의 n승이 곱하는 형식으로 수를 나타내는 방식이다.

1
numObj.toExponential([fractionDigits])

Number.prototype.toFixed(fractionDigits?: number): string ES3

매개변수로 지정된 소숫점자리를 반올림하여 문자열로 반환한다.

1
numObj.toFixed([fractionDigits])

Number.prototype.toPrecision(precision?: number): string ES3

매개변수로 지정된 전체 자릿수까지 유효하도록 나머지 자릿수를 반올림하여 문자열로 반환한다. 지정된 전체 자릿수로 표현할 수 없는 경우 지수 표기법으로 결과를 반환한다.

1
numObj.toPrecision([precision])

Number.prototype.toString(radix?: number): string ES1

숫자를 문자열로 변환하여 반환한다.

1
numObj.toString([radix])

Number.prototype.valueOf(): number ES1

Number 객체의 원시 타입 값(primitive value)을 반환한다.


REFERENCE
https://poiemaweb.com

  • © 2020-2025 404 Not Found
  • Powered by Hexo Theme Ayer