JavaScript метод Number.isSafeInteger()

Определение и применение

JavaScript метод isSafeInteger() определяет, является ли предоставленное значение безопасным целым числом и возвращает логическое значение. Метод возвращает true, если передаваемое значение является безопасным целым числом, в противном случае возвращаемое значение false.

К безопасному числу относится число, которое находится в диапазоне от -9007199254740991 (свойство Number.MIN_SAFE_INTEGER) до 9007199254740991 включительно (свойство Number.MAX_SAFE_INTEGER). В соответствии со стандартом, описывающим формат представления чисел с плавающей точкой IEEE-754 в этом диапазоне каждое целое число представляется точно и отличается от соседних целых. За его пределами такая гарантия отсутствует.

Проверьте поведение в редактируемом примере.

Поддержка браузерами

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

Поддерживается во всех основных браузерах с 2015 года.

Показать браузеры
Совместимостьjavascript.builtins.Number.isSafeInteger
ВозможностьКомпьютерыМобильные
ChromeEdgeFirefoxOperaSafariChrome AndroidFirefox for AndroidOpera AndroidSafari on iOSSamsung BrowserWebView AndroidWebView on iOS
isSafeInteger✓34✓12✓32✓21✓9✓34✓32✓21✓9✓2.0✓37✓9

поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31

JavaScript синтаксис

JavaScript
Number.isSafeInteger( value );

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

ECMAScript: Number.isSafeInteger()

Значения параметров

Number: справочные сведения
Параметр Описание
value Значение, которое будет проверено на то является ли оно безопасным целым числом, или нет. Обязательное значение.

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

Возвращает boolean без преобразования типов. Проверяет одновременно целочисленность и диапазон безопасных целых. Значения за пределами диапазона могут быть представлены точно, но не гарантируют различимость соседних целых; для больших целых используйте BigInt.

Примеры, попробуйте сами

Как проверить границы безопасных целых

Измените число около 2 ** 53 и проверьте, где заканчиваются безопасные целые.

index.html
HTML
<p>Результат выполнения выводится в консоль.</p>
main.js
JavaScript
// Метод возвращает true

console.log(Number.isSafeInteger(1.0))
console.log(Number.isSafeInteger(Math.pow(2, 53) - 1)) // возводим в степень
console.log(Number.isSafeInteger(123))
console.log(Number.isSafeInteger(-123))
console.log(Number.isSafeInteger(0))
console.log(Number.isSafeInteger(-0))

// Метод возвращает false

console.log(Number.isSafeInteger(Math.pow(2, 53))) // возводим в степень
console.log(Number.isSafeInteger(1.1))
console.log(Number.isSafeInteger(Infinity))
console.log(Number.isSafeInteger(-Infinity))
console.log(Number.isSafeInteger(undefined))
console.log(Number.isSafeInteger(true))
console.log(Number.isSafeInteger(null))
console.log(Number.isSafeInteger('123'))
console.log(Number.isSafeInteger('1.23'))
console.log(Number.isSafeInteger([]))
console.log(Number.isSafeInteger({}))
console.log(Number.isSafeInteger(''))
console.log(Number.isSafeInteger(' '))