모자딥 28장 Number

릿·2023년 2월 6일
0

28장 Number

28.1 Number 생성자 함수


  • Number객체는 생성자 함수 객체이므로 new연산자와 함께 호출하여 Number인스턴스를 생성할 수 있음

28.1 Number 프로퍼티


28.2.1 Number.EPSILON (ES6)

  • 부동소수점으로 인해 발생하는 오차를 해결하기 위해 사용
0.1 + 0.2; // -> 0.30000000000004
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

28.2.2 Number.MAX_VALUE

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

28.2.3 Number.MIN_VALUE

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

28.2.4 Number.MAX_SAFE_INTEGER

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

28.2.5 Number_MIN_SAFE_INTEGER

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

28.2.6 Number.POSITIVE_INFINITY

  • Number.POSITIVE_INFINITY는 양의 무한대를 나타내고 Infinity와 같음

28.2.7 Number.NEGATIVE_INFINITY

  • Number.NEGATIVE_INFINITY는 음의 무한대를 나타내고 -Infinity와 같음

28.2.8 Number.NaN

  • Number.NaN은 숫자가 아님을 나타내는 값으로 window.NaN과 같음

28.3 Number메서드


28.3.1 Number.isFinite (ES6)

  • Number.isFinite 정적 메서드는 인수로 전달된 숫자값이 Infinity인지 -Infinity인지 검사하여 불리언값으로 반환함
  • 인수가 NaN이면 언제나 false반환
  • 검사 전에 인수를 숫자로 암묵적 타입 변환하지 않음
// 인수가 유한수이면 true반환
Number.isFinite(0); // -> true
Number.isFinite(Number.MAX_VALUE); // -> true
Number.isFinite(Number.MIN_VALUE); // -> true

// 인수가 무한수이면 false반환
Number.isFinite(Infinity); // -> false
Number.isFinite(-Infinity); // -> false

28.3.2 Number.isInteger (ES6)

  • Number.isInteger 정적 메서드는 인수가 정수인지 검사하여 불리언 값으로 반환함
  • 검사 전에 인수를 숫자로 암묵적 타입 변환하지 않음

28.3.3 Number.isNaN (ES6)

  • Number.isNaN 정적 메서드는 인수가 NaN인지 검사하여 불리언 값으로 반환함
  • 검사 전에 인수를 숫자로 암묵적 타입 변환하지 않음

28.3.4 Number.isSafeInteger (ES6)

  • Number.isSafeInteger 정적 메서드는 인수가 안전한 정수인지 검사하여 불리언값으로 반환함
  • 안전한 정수 값은 -(2^53 - 1)과 2^53 - 1 사이의 정수값임
  • 검사 전에 인수를 숫자로 암묵적 타입 변환하지 않음

28.3.5 Number.prototype.toExponential

  • toExponential메서드는 숫자를 지수 표기법(매우 크거나 작은 숫자를 표기할 떄 사용)으로 변환하여 문자열로 반환함
(77.1234).toExponential(); // -> '7.71234e+1'
(77.1234).toExponential(4); // -> '7.7123e+1'
(77.1234).toExponential(2); // -> '7.71e+1'

28.3.6 Number.prototype.toFixed

  • toFixed메서드는 숫자를 반올림하여 문자열로 반환함
  • 반올림하는 소수점 이하 자릿수를 나타내는 0~20사이의 정수값 전달가능 (생략 시 기본값 0 지정)
(12345.6789).toFixed(); // -> '12346'
(12345.6789).toFixed(2); // -> '12345.68'

28.3.7 Number.prototype.toPrecision

  • toPrecision메서드는 인수로 전달받은 전체 자릿수까지 유효하도록 나머지 자릿수를 반올림하여 문자열로 반환함, 전체 자릿수로 표현할 수 없는 경우 지수표기법으로 반환함
  • 전체 자릿수를 나타내는 0~21사이의 정수값 전달가능 (생략 시 기본값 0 지정)
(12345.6789).toPrecision(); // -> '12345.6789'
(12345.6789).toPrecision(1); // -> '1e+4'
(12345.6789).toPrecision(6); // -> '12345.7'

28.3.8 Number.prototype.toString

  • toString메서드는 숫자를 문자열로 변환하여 반환함
  • 진법을 나타내는 2~36사이의 정수값 전달 가능(생략시 기본값 10진법 지정)
(10).toString(); -> '10'
// 2진수 문자열 반환
(16).toString(2); -> '10000'
// 8진수 문자열 반환
(16).toString(8); -> '20'
profile
항상 재밌는 뭔가를 찾고 있는 프론트엔드 개발자

0개의 댓글