Number.isSafeInteger()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Статический метод Number.isSafeInteger() определяет, является ли переданное значение безопасным целым числом.

Интерактивный пример

Синтаксис

js
Number.isSafeInteger(testValue)

Параметры

testValue

Проверяемое значение.

Возвращаемое значение

Логическое значение true если переданное значение является безопасным целым числом, в противном случае false.

Описание

К безопасным целым числам относятся все целые числа от -(253 – 1) до 253 – 1 включительно (±9 007 199 254 740 991). Безопасное целое число — это целое число, которое:

  • может быть точно представлено как число двойной точности по стандарту IEEE-754, и
  • это представление не может быть результатом округления любого другого целого числа для соответствия представлению по стандарту IEEE-754.

Например, 253 - 1 является безопасным целым числом: оно может быть точно представлено, и никакое другое целое число не округляется до него ни при каком режиме округления IEEE-754. А вот 253 не является безопасным целым числом: оно может быть точно представлено в IEEE-754, но целое число 253 + 1 не может быть представлено в IEEE-754, а вместо этого округляется до 253 при округлении до ближайшего и до нуля.

Обработка значений больше или меньше ~9 квадриллионов с полной точностью требует использования библиотек, поддерживающих арифметику произвольной точности. Дополнительную информацию о представлениях чисел с плавающей точкой смотрите в The Floating-Point Guide (англ.).

Для бо́льших целых чисел рассмотрите возможность использования типа BigInt.

Примеры

js
Number.isSafeInteger(3); // true
Number.isSafeInteger(2 ** 53); // false
Number.isSafeInteger(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

Спецификации

Specification
ECMAScript Language Specification
# sec-number.issafeinteger

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также