해당 포스팅은 위키북스의 모던 자바스크립트 Deep Dive라는 책을 독학하며 기록하는 글입니다.

표준 빌트인 객체인 Number는 원시 타입인 숫자를 다룰 때 유용한 프로퍼티와 메서드를 제공한다.

Number 객체 생성

new연산자와 함께 Number를 호출하면 Number인스턴스를 생성할 수 있다. 이때 Number를 호출하면서 인자로 넣어준 인수가 담긴 인스턴스가 생성되며 숫자가 아니라면 숫자로 변환해서 할당하고, 변환이 안된다면 NaN[[NumberData]] 내부 슬롯에 할당한다.

new연산자를 사용하지 않고 Number를 호출하면 Number 인스턴스가 아닌 수사즐ㄹ 반환하는데 이를 이용해서 명시적으로 타입을 변환하기도 한다.

Number 프로퍼티

  1. Number.EPSILON
    1과 1보다 큰 숫자중 가장 작은 수와의 차이를 나타내는 수를 반환한다. 약 22.22044... x 10의 -16승과 같다. 보통 Number.EPSILON은 부동소수점으로 인해 발생하는 오차를 해결하기 위해 사용한다.

  2. Number.MAX_VALUE
    자바스크립트에서 표현할 수 있는 가장 큰 양수 값을 반환한다. Number.MAX_VALUE보다 큰 값은 Infinity이다.

  3. Number.MIN_VALUE
    자바스크립트에서 표현할 수 있는 가장 작은 양수 값을 반환한다. Number.MIN_VALUE보다 작은 값은 0이다.

  4. Number.MAX_SAFE_INTEGER
    자바스크립트에서 안전하게 표현할 수 있는 가장 큰 정수값을 반환한다.

  5. Number.MIN_SAFE_INTEGER
    자바스크립트에서 안전하게 표현할 수 있는 가장 작은 정수값을 반환한다.

  6. Number.POSITIVE_INFINITY
    양의 무한대를 나타낸다.

  7. Number.NEGATIVE_INFINITY
    음의 무한대를 나타낸다.

  8. Number.NaN
    숫자가 아님을 나타내는 숫자값이다. Window.NaN과 같다.

Number 메서드

  1. Number.isFinite
    인수로 전달된 숫자값이 정상적인 유한수인지(Infinity나 -Infinity가 아닌지) 를 불리언 값으로 반환한다.

  2. Number.isInteger
    인수로 전달된 숫자값이 정수인지를 불리언 값으로 반환한다.

  3. Number.isNaN
    인수로 전달된 숫자값이 NaN인지를 불리언 값으로 반환한다.

  4. Number.isSafeInteger
    인수로 전달된 숫자값이 안전한 정수인지를 불리언으로 반환한다.

  5. 숫자값.toExponential(인수)
    숫자값을 지수표기법으로 변환하여 문자열로 반환한다. 인수로 소수점 이하로 표현할 자릿수를 전달할 수 있다.
    이때 숫자값이 소수점이 없는 숫자리터럴이라면 에러가 발생한다. 이는 숫자값 뒤의 .이 소수점을 나타내는 .인지 메서드를 사용하기 위한 접근 연산자인지가 모호하기 때문이다. 따라서 숫자 리터럴일 경우 괄호(())를 사용해서 숫자 리터럴을 감싸줘야 한다.

  6. 숫자값.toFixed(인수)
    숫자값을 반올림하여 문자열로 반환한다. 인수로 소수점 아래 자리수를 나타내는 수를 전달할 수 있다. 기본값은 0이다. (범위는 0~20)

  7. 숫자값.toPrecision(인수)
    인수로 전달받은 전체 자릿수까지 유효하도록 나머지 자릿수를 반올림하여 문자열로 반환한다. 인수로 전달받은 전체 자릿수로 표현할 수 없는 경우 지수 표기법으로 결과를 반환한다. (인수의 기본값은 0, 범위는 0~21)

  8. 숫자값.toString(인수)
    숫자값을 문자열로 변환하여 반환한다. 이때 인수로 2~36 사이의 정수값을 인수로 전달할 수 있는데 이는 숫자값을 해당 인수에 해당하는 진수로 변환해서 반환한다. (기본값은 10)

(10).toString()  // '10'
(10).toString(2)  // '1010'
(10).toString(8)  // '12'
(10).toString(16)  // 'A'
profile
I Will be Relaxed Person

0개의 댓글