[Javascript] Number

SungWoo·2024년 11월 1일

자바스크립트 공부

목록 보기
20/42
post-thumbnail

자바스크립트의 Number 객체는 숫자 값을 다루기 위해 제공되는 표준 빌트인 객체이다. 숫자 값을 표현하고 조작할 수 있는 다양한 정적 속성과 메서드를 포함하고 있으므로 정리하고 넘어가보자.

Number 생성자 함수

  • 표준 빌트인 객체인 Number 객체는 생성자 함수 객체이다.
    new 연산자와 함께 호출하여 Number 인스턴스를 생성할 수 있다.
  • Number 생성자 함수에 인수를 전달하지 않고 new 연산자와 함께 호출하면 [[NumberData]](ES5에서는 [[PrimitiveValue]]) 내부 슬롯에 0을 할당한 Number 래퍼 객체를 생성한다.
const numObj = new Number();
console.log(numObj); // Number { [[PrimitiveValue]]: 0 }
  • new 연산자를 사용하지 않고 Number 생성자 함수를 호출하면 Number 인스턴스가 아닌 숫자를 반환한다.
  • 이를 이용하여 명시적으로 타입을 변환하기도 한다.
Number('0'); // 0
Number('-1'); // -1

Number 프로퍼티

Number.EPSILON

  • 1과 1보다 큰 숫자 중에서 가장 작은 숫자와의 차이와 같다.
  • 두 부동 소수점 숫자가 얼마나 가까운지를 나타내는 매우 작은 양수(입실론)
  • 정확히는 2^(-52) = 2.220446049250313e-16 정도의 값
  • 부동소수점 산술 연산은 정확한 결과를 기대하기 어렵다.
  • 부동소수점 연산에서 생기는 오차를 비교하거나 확인할 때 사용한다.
let a = 0.1 + 0.2;
console.log(a === 0.3); // false

// Number.EPSILON을 사용해 비교
function isCloseEnough(a, b) {
  return Math.abs(a - b) < Number.EPSILON;
}

console.log(isCloseEnough(a, 0.3)); // true

Number.MAX_VALUE

  • 자바스크립트에서 표현할 수 있는 가장 큰 양수값이다.
Number.MAX_VALUE; // 1.7976931348623157e+308

Number.MIN_VALUE

  • 자바스크립트에서 표현할 수 있는 가장 작은 양수값이다.
Number.MIN_VALUE; // 5e-324

Number.MAX_SAFE_INTEGER

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

Number.MIN_SAFE_INTEGER

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

Number.POSITIVE_INFINITY

  • 양의 무한대를 나타내는 숫자값이다.
Number.POSITIVE_INFINITY; // Infinity

Number.NEGATIVE_INFINITY

  • 음의 무한대를 나타내는 숫자값이다.
Number.NEGATIVE_INFINITY; // -Infinity

Number.NaN

  • 숫자가 아님(Not-a-Number)을 나타내는 숫자값이다.
  • Number.NaNwindow.NaN과 같다.
Number.NaN; // NaN

Number 메서드

Number.isFinite

  • 주어진 값이 유한한 숫자인지 확인한다.
Number.isFinite(10); // true
Number.isFinite(Infinity); // false

Number.isInteger

  • 주어진 값이 정수인지 확인한다.
  • 검사하기 전에 숫자로 암묵적 타입 변환하지 않는다.
Number.isInteger(10); // true
Number.isInteger(10.5); // false

Number.isNaN

  • 주어진 숫자값이 NaN인지 확인한다.
Number.isNaN(NaN); // true
Number.isNaN(10); // false

Number.isSafeInteger

  • 주어진 값이 안전한 정수(-(2^53 - 1)에서 (2^53 - 1) 사이의 정수)인지 확인한다.
Number.isSafeInteger(10); // true
Number.isSafeInteger(Math.pow(2, 53)); // false

Number.parseFloat

  • 문자열을 부동 소수점 숫자로 변환한다.
Number.parseFloat("10.5"); // 10.5

Number.parseInt(string, [radix])

  • 문자열을 정수로 변환한다.
Number.parseInt("10"); // 10
Number.parseInt("10", 2); // 2진수 해석, 결과는 2

Number의 프로토타입 메서드

toFixed

  • 지정된 소수 자릿수로 숫자를 반올림하여 문자열로 반환한다.
let num = 10.567;
num.toFixed(2); // "10.57"

toExponential

  • 숫자를 지수 표기법으로 변환하여 문자열로 변환한다.
let num = 12345;
num.toExponential(2); // "1.23e+4"

toPrecision

  • 지정된 자릿수로 숫자를 반올림하여 문자열로 반환한다.
let num = 123.456;
num.toPrecision(4); // "123.5"

toString

  • 숫자를 문자열로 반환하며, 진수를 지정할 수 있다.
let num = 255;
num.toString(16); // "ff" (16진수)
profile
어제보다 더 나은

0개의 댓글