Number.isSafeInteger()

Number.isSafeInteger() 메서드는 전달된 값이 안전한 정숫값인지 확인합니다.

시도해보기

안전한 정숫값이란 다음과 같습니다.

  • IEEE-754 배정도수 형태로 정확히 표현될 수 있는 수이고
  • IEEE-754 표현에 맞게 반올림하는 다른 정수의 결과가 아닌 IEEE-754 표현.

예를 들어, 2^53 - 1은 안전한 정수입니다. 이 정수는 정확히 표현될 수 있으며, IEEE-754 반올림 모드에서 다른 정숫값이 이 값을 반올림하지 않습니다. 반면에, 2^53 는 안전하지 않은 정수입니다. 이 정수는 정확히 IEEE-754로 표현될 수 있지만, 정수 2^53 + 1은 IEEE-754로 직접 표현될 수 없으며 가까운 수로 반올림하는 것과 0으로 반올림하는 것으로 2^53을 반올림합니다.

안전한 정숫값은 -(2^53 - 1) 부터 2^53 - 1 사이의 모든 정수값으로 구성됩니다.

구문

js
Number.isSafeInteger(testValue);

매개변수

testValue

안전한 정수인지 확인할 값.

반환 값

주어진 값이 안전한 정숫값인지 나타내는 Boolean.

예시

js
Number.isSafeInteger(3); // true
Number.isSafeInteger(Math.pow(2, 53)); // false
Number.isSafeInteger(Math.pow(2, 53) - 1); // true
Number.isSafeInteger(NaN); // false
Number.isSafeInteger(Infinity); // false
Number.isSafeInteger("3"); // false
Number.isSafeInteger(3.1); // false
Number.isSafeInteger(3.0); // true

폴리필

js
Number.isSafeInteger =
  Number.isSafeInteger ||
  function (value) {
    return (
      Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER
    );
  };

명세

Specification
ECMAScript Language Specification
# sec-number.issafeinteger

브라우저 호환성

BCD tables only load in the browser

같이 보기