Функция isFinite()
используется для проверки, является ли переданное значение конечным числом. Это важный инструмент валидации числовых значений в JavaScript/Node.js.
isFinite(123); // true
isFinite(-1.23); // true
isFinite(0); // true
isFinite('123'); // true (строка преобразуется в число)
isFinite(''); // true (пустая строка преобразуется в 0)
isFinite(null); // true (null преобразуется в 0)
isFinite(Infinity); // false
isFinite(-Infinity);// false
isFinite(NaN); // false
isFinite('text'); // false
isFinite(undefined);// false
Преобразование типов:
Number.isFinite()
(появился в ES6)Что считается "не конечным":
// Пример различий:
isFinite('123'); // true (происходит преобразование)
Number.isFinite('123'); // false (строка ≠ число)
isFinite(null); // true (null → 0)
Number.isFinite(null); // false
function validateInput(value) {
return isFinite(value) && value !== null;
}
const result = someComplexCalculation();
if (!isFinite(result)) {
throw new Error('Calculation returned infinite value');
}
const values = [1, '2', 'three', 4];
const validNumbers = values.filter(val => isFinite(val));
// [1, '2', 4] - 'three' отфильтровано
Работа с большими числами:
Обработка внешних данных:
// При чтении JSON или API ответов
const payload = JSON.parse(rawData);
if (!isFinite(payload.timestamp)) {
// обработка ошибки
}
isFinite()
— это функция для проверки конечности числовых значений с неявным преобразованием типов. Для более строгой проверки (без преобразования) следует использовать Number.isFinite()
. Обе функции важны для надежной работы с числами в JavaScript/Node.js приложениях.