Вебсправочник
Справочник JavaScript

Number.isInteger(): проверка целого числа без преобразования

Number.isInteger проверяет, является ли значение типа number целым в его текущем представлении. Строки с цифрами, NaN и бесконечности не проходят такую проверку.

Назначение

Number.isInteger проверяет, является ли значение типа number целым в его текущем представлении. Строки с цифрами, NaN и бесконечности не проходят такую проверку.

Как это работает

Метод не вызывает преобразование через Number. Значения 4 и 4.0 в JavaScript представляют одно число. Для очень больших чисел отдельно важна безопасная точность: проверка целочисленности её не гарантирует.

Пример

console.assert(Number.isInteger(4));
console.assert(Number.isInteger(4.0));
console.assert(!Number.isInteger(4.2));
console.assert(!Number.isInteger("4"));
console.assert(!Number.isInteger(Infinity));
console.assert(Number.isInteger(2 ** 53));
console.assert(!Number.isSafeInteger(2 ** 53));
console.log("Тип и точность проверены");

Что должно получиться

Числовые целые значения проходят проверку, строка и дробь — нет. Последние два утверждения показывают разницу между целым значением и безопасным целым.

Граница применения и частая ошибка

Дробь может округлиться ещё до проверки из-за представления number. Если получаете идентификатор с большим количеством цифр, не превращайте его в число без необходимости; строка часто точнее описывает такую сущность.

Самостоятельная проверка

Проверьте введённое количество товара по трём условиям: число, безопасное целое, диапазон 1–100. Не забывайте, что значение input приходит строкой и требует отдельно выбранных правил разбора.

Пример JavaScript проверяйте в собственном учебном файле или консоли своего проекта. Встроенная песочница справочника JavaScript не выполняет. Успешное выполнение в одной среде не гарантирует поддержку метода во всех браузерах.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.