Number.isFinite()
- Что такое Number.isFinite()
- Синтаксис
- Какие значения проходят проверку
- Метод не преобразует значения
- Проверка после Number()
- Number.isFinite() и prompt()
- Итого
Number.isFinite() - это метод, который проверяет, является ли значение обычным конечным числом.
console.log(Number.isFinite(10));
console.log(Number.isFinite(Infinity));
Результат:
true
false
Число 10 конечное. Infinity означает бесконечность, поэтому проверку не проходит.
Что такое Number.isFinite()
Number.isFinite() возвращает true, если значение является числом и не равно Infinity, -Infinity или NaN.
console.log(Number.isFinite(25));
console.log(Number.isFinite(3.14));
console.log(Number.isFinite(-8));
Результат:
true
true
true
Целые, дробные и отрицательные числа могут быть конечными.
Синтаксис
Общая запись выглядит так:
Number.isFinite(value);
value - значение, которое нужно проверить.
let result = Number.isFinite(100);
console.log(result);
Результат:
true
Какие значения проходят проверку
Обычные числа проходят проверку.
console.log(Number.isFinite(0));
console.log(Number.isFinite(15));
console.log(Number.isFinite(15.5));
Результат:
true
true
true
Специальные значения Infinity, -Infinity и NaN проверку не проходят.
console.log(Number.isFinite(Infinity));
console.log(Number.isFinite(-Infinity));
console.log(Number.isFinite(NaN));
Результат:
false
false
false
Infinity может появиться, например, при делении на ноль. NaN появляется, когда JavaScript пытался получить число, но не смог.
Метод не преобразует значения
Number.isFinite() ничего не преобразует. Если передать строку с числом, результат будет false.
console.log(Number.isFinite('10'));
console.log(Number.isFinite('10.5'));
Результат:
false
false
Строка ‘10’ выглядит как число, но остается строкой. Метод проверяет строго: это уже число или нет.
Это отличие от обычной функции isFinite(), которая сначала пытается преобразовать значение в число.
console.log(isFinite('10'));
console.log(Number.isFinite('10'));
Результат:
true
false
На первых уроках лучше использовать Number.isFinite(): его поведение проще предсказать.
Проверка после Number()
Если значение пришло строкой, сначала его можно преобразовать через Number().
let value = '25';
let numberValue = Number(value);
console.log(Number.isFinite(numberValue));
Результат:
true
Если преобразование не удалось, получится NaN, и проверка вернет false.
let value = 'JavaScript';
let numberValue = Number(value);
console.log(Number.isFinite(numberValue));
Результат:
false
Number.isFinite() и prompt()
prompt() всегда возвращает строку. Поэтому сначала преобразуем значение, а потом проверяем.
let value = prompt('Введите число');
let numberValue = Number(value);
if (Number.isFinite(numberValue)) {
console.log(numberValue * 2);
} else {
console.log('Введите обычное число');
}
Если пользователь введет 10, в консоли будет 20. Если введет текст, сработает блок else.
Пустой ввод лучше проверять отдельно, если он запрещен. Number(”) дает 0, а 0 является конечным числом.
Итого
Number.isFinite() проверяет, является ли значение конечным числом. Метод возвращает false для Infinity, -Infinity, NaN, строк и других нечисловых значений.
Number.isFinite(value);
Чаще всего его используют после Number(), чтобы убедиться, что получилось обычное число, с которым можно выполнять вычисления.