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

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

Number.isFinite проверяет, является ли значение числом, отличным от NaN и бесконечности.

Назначение

Number.isFinite проверяет, является ли значение числом, отличным от NaN и бесконечности.

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

Метод не приводит строки к числам: "12" не проходит проверку. Это полезно после явного преобразования пользовательского ввода, когда нужно отдельно проверить результат.

Пример

console.assert(Number.isFinite(12));
console.assert(!Number.isFinite('12'));
console.assert(!Number.isFinite(Infinity));
console.assert(!Number.isFinite(NaN));
console.assert(Number('')===0);

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

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

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

Пустая строка при Number("") становится нулём. Если пустой ввод недопустим, проверьте пустоту до преобразования, а не рассчитывайте только на isFinite.

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

Проверьте 12, строку "12", NaN, Infinity и пустую строку после Number. Сформулируйте последовательность валидации, которая отличает отсутствие данных от настоящего нуля.

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

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