--- title: Number.isSafeInteger() slug: Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger tags: - ECMAScript6 - JavaScript - Method - Number translation_of: Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger ---
{{JSRef}}

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

{{EmbedInteractiveExample("pages/js/number-issafeinteger.html")}}

Безопасное целое число это такое число, которое:

Например, число 253 - 1 является безопасным целым числом: оно может быть представлено точно и никакое другое целое число не округляется к нему ни в каком режиме округления IEEE-754. В противовес ему, число 253 не является безопасным целым числом: оно может быть точно представлено в IEEE-754, но целое число 253 + 1 не может быть напрямую представлено в IEEE-754 и округляется к числу 253 в режимах округления к ближайшему и к нулю. Безопасные целые числа состоят из всех целых чисел в диапазоне от -(253 - 1) до 253 - 1 включительно (± 9007199254740991 или ± 9,007,199,254,740,991).

Обработка значений, больших или меньших чем ~9 квадриллионов, с высокой точностью требует использования библиотеки, умеющей работать с длиной арифметикой. Ознакомьтесь с Что Каждому Программисту Необходимо Знать об Арифметике с Вещественными числами для получения дополнительной информации о представлении чисел, с плавающей запятой.

Для больших целочисленных значений, рассмотрите возможность использования типа {{jsxref("BigInt")}}.

Синтаксис

Number.isSafeInteger(testValue)

Параметры

testValue
Значение, проверяемое на целочисленную «безопасность».

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

{{jsxref("Boolean")}} значение, сообщающее о том, является ли переданное значение безопасным целочисленным числом или же нет.

Примеры

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

Полифил

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

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

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

{{SpecName('ESDraft', '#sec-number.issafeinteger', 'Number.isSafeInteger')}}

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

{{Compat("javascript.builtins.Number.isSafeInteger")}}

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