Кратко
Number — встроенный объект для работы с числами. parseInt() и parseFloat() преобразуют строки в числа. toFixed() форматирует десятичные. isNaN() проверяет на NaN. Math содержит математические функции: floor, ceil, round, random.
Подробно
Преобразование строк в числа: Number('42') // 42 Number('hello') // NaN parseInt('42px') // 42 (отбрасывает нечисловые символы) parseFloat('3.14abc') // 3.14
Округление: Math.floor(3.7) // 3 (вниз) Math.ceil(3.2) // 4 (вверх) Math.round(3.5) // 4 (ближайшее)
Форматирование: (3.14159).toFixed(2) // '3.14' (строка!) (3.14159).toPrecision(3) // '3.14'
Проверка: Number.isNaN(NaN) // true Number.isNaN('hello') // false Number.isFinite(42) // true Number.isFinite(Infinity) // false
Math: Math.abs(-5) // 5 Math.max(1, 5, 3) // 5 Math.min(1, 5, 3) // 1 Math.random() // 0 ≤ x < 1 Math.sqrt(16) // 4 Math.pow(2, 3) // 8
Ментальная модель
Number methods — как калькулятор с дополнительными кнопками: округление, форматирование, проверка — всё для работы с числами.
Примеры
**Самый простой:**
console.log(parseInt('42px')); // 42
console.log(parseFloat('3.14abc')); // 3.14
console.log(Number('hello')); // NaNparseInt и parseFloat «вытаскивают» число из строки. Если не могут — NaN.
**Простой:**
const price = 19.999;
console.log(price.toFixed(2)); // '20.00'
console.log(Math.round(price)); // 20
console.log(Math.floor(price)); // 19toFixed возвращает строку! Math.round/floor/ceil возвращают число.
**Реальный пример:**
function generateRandomId() {
return Math.random().toString(36).substring(2, 9);
}
console.log(generateRandomId()); // 'f4ki2j1'Math.random() генерирует случайное число. toString(36) превращает его в строку.
Частые ошибки
**Неправильно:** Забывать, что toFixed() возвращает строку
**Почему:** (3.14).toFixed(2) → '3.14' (строка, не число!).
**Правильно:** Используйте Number((3.14).toFixed(2)) для числа.
**Неправильно:** Использовать isNaN() вместо Number.isNaN()
**Почему:** isNaN() приводит значение к числу перед проверкой. Number.isNaN() — строгая проверка.
**Правильно:** Используйте Number.isNaN() для точной проверки.
**Неправильно:** Думать, что parseInt всегда точен
**Почему:** parseInt('08') в старых IE возвращает 0 (восьмеричная система). Всегда указывайте основание: parseInt('08', 10).
**Правильно:** Всегда: parseInt(value, 10).
Важно запомнить
- parseInt/parseFloat — строки → числа
- toFixed() возвращает строку!
- Math.floor/ceil/round — округление
- Number.isNaN() — строгая проверка на NaN
- Math.random() — случайное число 0 ≤ x < 1
Связь
Назад: Вы знаете базовые операции (J4) — теперь у вас есть продвинутые инструменты для чисел.
Вперёд: Следующий урок (J22) — методы строк: инструменты для работы с текстом.