Объект Number: методы isFinite, isNaN, parseInt, parseFloat
🧮 Объект Number и его полезные методы
JavaScript предоставляет встроенный объект Number с набором методов для работы с числами. Сегодня разберём четыре ключевых метода, которые помогут избежать ошибок в реальных проектах:
isFinite()— проверяет, является ли значение конечным числом.isNaN()— определяет, является ли значениеNaN(Not a Number).parseInt()— преобразует строку в целое число.parseFloat()— преобразует строку в число с плавающей точкой.
Разберём каждый подробно с примерами!
🔍 Number.isFinite(): Проверка на конечность
Метод isFinite() возвращает true, если значение является конечным числом. В отличие от глобальной функции isFinite(), он не выполняет приведение типов.
console.log(Number.isFinite(42)); // true
console.log(Number.isFinite(Infinity)); // false
console.log(Number.isFinite("42")); // false (строка — не число)
💡 Когда использовать?
Когда нужно убедиться, что значение — именно число, а не строка или другой тип.
❓ Number.isNaN(): Ловим "не числа"
NaN (Not a Number) — специальное значение, которое появляется при некорректных математических операциях, например:
console.log(0 / 0); // NaN
Метод Number.isNaN() строго проверяет, является ли значение NaN.
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN("текст")); // false (строка — не NaN)
console.log(Number.isNaN(42)); // false
⚠️ Важно!
ГлобальнаяisNaN()сначала пытается преобразовать значение в число, что может дать неожиданные результаты:
javascript console.log(isNaN("123")); // false (строка преобразуется в число) console.log(isNaN("текст")); // true
🔢 Number.parseInt(): Преобразуем строку в целое число
Часто числа приходят в виде строк (например, из input или API). parseInt() разбирает строку и возвращает целое число.
Синтаксис:
parseInt(string, radix);
string— строка для преобразования.radix— система счисления (от2до36).
Примеры:
console.log(Number.parseInt("42px")); // 42 (игнорирует "px")
console.log(Number.parseInt("101", 2)); // 5 (двоичная система)
console.log(Number.parseInt("FF", 16)); // 255 (шестнадцатеричная)
⚠️ Осторожно! Если строка начинается не с числа — вернёт NaN:
console.log(Number.parseInt("текст42")); // NaN
🌊 Number.parseFloat(): Дробные числа из строки
Аналогично parseInt(), но сохраняет дробную часть:
console.log(Number.parseFloat("3.14")); // 3.14
console.log(Number.parseFloat("42.5px")); // 42.5
console.log(Number.parseFloat("0xFF")); // 0 (не шестнадцатеричная!)
🚀 Совет:
ИспользуйтеparseFloatдля значений с плавающей точкой (цены, координаты, размеры).
🛠️ Практика: Где это применяется?
1. Валидация форм:
const inputValue = "123.45";
if (Number.isFinite(Number.parseFloat(inputValue))) {
console.log("Корректное число!");
}
2. Обработка данных из API:
const apiData = "42%";
const number = Number.parseInt(apiData);
console.log(number); // 42
3. Фильтрация NaN в массивах:
const values = [42, NaN, "текст", 10];
const cleanNumbers = values.filter(val => !Number.isNaN(val));
console.log(cleanNumbers); // [42, 10]
🔥 Итог
Number.isFinite()— проверяет, является ли значение конечным числом.Number.isNaN()— строгая проверка наNaN.Number.parseInt()— преобразует строку в целое число.Number.parseFloat()— преобразует строку в дробное число.
Теперь вы знаете, как безопасно работать с числами в JavaScript! 🎉