모던 자바스크립트 Deep Dive - 28. Number

둡둡·2024년 2월 12일

Modern Javascript Deep Dive

목록 보기
29/49

28.1. Number 생성자 함수

  • 표준 빌트인 생성자 함수 객체
  • new 연산자와 함께 Number 인스턴스 생성
    • 인수 없이 호출하면 0을 할당한 래퍼 객체 생성
    • 전달받은 숫자 값을 할당하여 생성
    • 숫자가 아닌 값을 전달하면 강제 타입 변환 후 생성
    • 변환할 수 없다면 NaN 할당하여 생성
  • new 없이 Number() 가능

28.2. Number 프로퍼티

28.2.1. Number.EPSILON

  • ES6 도입: 1과 1보다 큰 숫자 중에서 가장 작은 숫자와의 차이

28.2.2. Number.MAX_VALUE

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

28.2.3. Number.MIN_VALUE

  • 자바스크립트에서 표현할 수 있는 가장 작은 양수 값 = 0

28.2.4. Number.MAX_SAFE_INTEGER

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

28.2.5. Number.MIN_SAFE_INTEGER

  • 자바스크립트에서 안전하게 표현할 수 있는 가장 작은 정수 값 (-9007199254740991)

28.2.6. Number.POSITIVE_INFINITY

  • 양의 무한대를 나타내는 숫자값 = Infinity

28.2.7. Number.NEGATIVE_INFINITY

  • 음의 무한대를 나타내는 숫자값 = -Infinity

28.2.8. Number.NaN

  • 숫자가 아님 = window.NaN

28.3. Number 메서드

28.3.1. Number.isFinite

  • ES6 도입: 전달된 인수의 유한수 여부 판별하여 boolean 반환
    • Infinity 또는 -Infinity 여부 확인 -> false
    • NaN -> false
  • Number.isFinite는 변환하지 않음 -> 숫자가 아닌 인수는 항상 false
    • 빌트인 전역 함수 isFinite는 암묵적 타입 변환하여 수행

28.3.2. Number.isInteger

  • ES6 도입: 전달된 인수의 정수 여부 판별하여 boolean 반환
  • 타입 변환하지 않음

28.3.3. Number.isNaN

  • ES6 도입: 전달된 인수의 NaN 여부 판별하여 boolean 반환
  • 타입 변환하지 않음
    • 빌트인 전역 함수 isNaN은 암묵적 타입 변환하여 수행

28.3.4. Number.isSafeInteger

  • ES6 도입: 전달된 인수가 안전한 정수인지 판별하여 boolean 반환
    • 안전한 정수 값은 -(2^53 - 1)과 2^53 - 1 사이의 정수값
  • 타입 변환하지 않음

28.3.5. Number.prototype.toExponential

  • 숫자를 지수 표기법으로 변환하여 문자열 반환

28.3.6. Number.prototype.toFixed

  • 숫자를 반올림하여 문자열로 반환
  • 반올림하는 소수점 이하 자릿수를 0~20 사이 정수값으로 전달
    • 생략하면 기본값 0 지정

28.3.7. Number.prototype.toPrecision

  • 전달받은 인수로 길이를 제한하여 반올림 후 문자열 반환
    • 전달받은 인수로 자릿수를 표현할 수 없는 경우 지수 표기법 반환
    • 생략하면 기본값 0 지정
const num = new Number(1.232323);
num.toPrecision(); // '1.232323'
num.toPrecision(1); // '1'
num.toPrecision(10); // '1.23232300'

28.3.8. Number.prototype.toString

  • 숫자를 문자열로 변환하여 반환
  • 진법을 나타내는 2~36 사이의 정수값을 인수로 전달 가능
    • 생략하면 기본값 10진법 지정

[출처] 모던 자바스크립트, Deep Dive

profile
괴발개발라이프

0개의 댓글