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 не выполняет. Успешное выполнение в одной среде не гарантирует поддержку метода во всех браузерах.