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 в песочнице этого сайта не выполняется. Перенесите пример в отдельный учебный файл. Сначала проверьте исходный результат, затем измените входные данные; ошибка проверки означает, что результат отличается от ожидаемого.