Spec-Zone.ru › JavaScript

Number.isInteger()

Базовый уровень Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.

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

Попробуйте

function fits(x, y) {
  if (Number.isInteger(y / x)) {
    return "Fits!";
  }
  return "Does NOT fit!";
}

console.log(fits(5, 10));
// Expected output: "Fits!"

console.log(fits(5, 11));
// Expected output: "Does NOT fit!"

Синтаксис

Number.isInteger(value)

Параметры

value
Значение для проверки на целое число.

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

Булево значение true, если данное значение является целым числом. В противном случае false.

Описание

Если целевое значение является целым числом, возвращается true, в противном случае возвращается false. Если значение является NaN или Infinity, возвращается false. Метод также вернет true для чисел с плавающей запятой, которые могут быть представлены как целые числа. Он всегда будет возвращать false, если значение не является числом.

Обратите внимание, что некоторые числовые литералы, хотя и выглядят как нецелые числа, на самом деле представляют целые числа — из-за ограничения точности кодирования чисел с плавающей запятой ECMAScript (IEEE-754). Например, 5.0000000000000001 отличается от 5 только на 1e-16, что слишком мало для представления. (Для справки, Number.EPSILON хранит расстояние между 1 и следующим представимым числом с плавающей запятой, большим 1, и это около 2.22e-16.) Следовательно, 5.0000000000000001 будет представлено с тем же кодированием, что и 5, что приведет к тому, что Number.isInteger(5.0000000000000001) вернет true.

В том же смысле, числа вблизи величины Number.MAX_SAFE_INTEGER будут страдать от потери точности и приведут к тому, что Number.isInteger вернет true, даже если это не целое число. (Фактический порог зависит от количества бит, необходимых для представления десятичного числа — например, Number.isInteger(4500000000000000.1) равно true, но Number.isInteger(4500000000000000.5) равно false.)

Примеры

Использование isInteger

Number.isInteger(0); // true
Number.isInteger(1); // true
Number.isInteger(-100000); // true
Number.isInteger(99999999999999999999999); // true

Number.isInteger(0.1); // false
Number.isInteger(Math.PI); // false

Number.isInteger(NaN); // false
Number.isInteger(Infinity); // false
Number.isInteger(-Infinity); // false
Number.isInteger("10"); // false
Number.isInteger(true); // false
Number.isInteger(false); // false
Number.isInteger([1]); // false

Number.isInteger(5.0); // true
Number.isInteger(5.000000000000001); // false
Number.isInteger(5.0000000000000001); // true, because of loss of precision
Number.isInteger(4500000000000000.1); // true, because of loss of precision

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

Specification
ECMAScript® 2027 Language Specification
# sec-number.isinteger

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

Desktop Mobile Server
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
isInteger
34
12
16
21
9
34
16
21
9
2.0
37
9
1.0.0
1.0
0.12.0

См. также

  • Polyfill of Number.isInteger in core-js
  • es-shims polyfill of Number.isInteger
  • Number

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isInteger

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API