JavaScript метод Number.isSafeInteger()
Определение и применение
JavaScript метод isSafeInteger() определяет, является ли предоставленное значение безопасным целым числом
и возвращает логическое значение. Метод возвращает true, если передаваемое значение является безопасным
целым числом, в противном случае возвращаемое значение false.
К безопасному числу относится число, которое находится в диапазоне от -9007199254740991 (свойство
Number.MIN_SAFE_INTEGER) до 9007199254740991 включительно (свойство
Number.MAX_SAFE_INTEGER). В соответствии со стандартом, описывающим формат представления чисел с
плавающей точкой
IEEE-754
в этом диапазоне каждое целое число представляется точно и отличается от соседних целых. За его пределами такая
гарантия отсутствует.
Проверьте поведение в редактируемом примере.
Поддержка браузерами
Спецификация: ecma262
Поддерживается во всех основных браузерах с 2015 года.
| Возможность | Компьютеры | Мобильные | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
isSafeInteger | 34 | 12 | 32 | 21 | 9 | 34 | 32 | 21 | 9 | 2.0 | 37 | 9 |
поддерживаетсяс ограниченияминет поддержкинет данных≤31 — не позднее версии 31
JavaScript синтаксис
Number.isSafeInteger( value );
Спецификация
ECMAScript: Number.isSafeInteger()
Значения параметров
| Параметр | Описание |
|---|---|
value |
Значение, которое будет проверено на то является ли оно безопасным целым числом, или нет. Обязательное значение. |
Возвращаемое значение и особенности
Возвращает boolean без преобразования типов. Проверяет одновременно целочисленность и диапазон безопасных
целых. Значения за пределами диапазона могут быть представлены точно, но не гарантируют различимость соседних целых;
для больших целых используйте BigInt.
Примеры, попробуйте сами
Как проверить границы безопасных целых
Измените число около 2 ** 53 и проверьте, где заканчиваются безопасные целые.
index.html
<p>Результат выполнения выводится в консоль.</p>
main.js
// Метод возвращает 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(' '))