Введение в Math и базовые операции
Введение в Math и базовые операции
Технический фундамент вычислений в JavaScript
Перед использованием Math важно понимать базу вычислений в JS:
- все обычные числа в JS имеют тип
number(формат IEEE 754 double); - из-за двоичного представления дробей возможны погрешности (
0.1 + 0.2 !== 0.3); NaNозначает «не удалось получить корректное число»;Infinityи-Infinityтоже валидные числовые значения.
Смотри, что важно про NaN: это единственное значение в JS, которое не равно самому себе. Проверять его через === нельзя, используют Number.isNaN(...).
const x = Number('oops');
console.log(x); // NaN
console.log(x === NaN); // false
console.log(Number.isNaN(x)); // true
Math не «исправляет» типовые проблемы чисел, а выполняет операции поверх входных значений. Поэтому первый инженерный навык в этой теме: контролировать входы и проверять результат.
Зачем тебе Math уже на старте
Объект Math в JavaScript нужен везде, где есть расчеты: цены, проценты, метрики, расстояния, размеры блоков, игровые значения, прогресс, аналитика. Даже если проект «не про математику», в нем все равно есть округления, сравнения границ и вычисления формул.
Ключевой момент: Math — это встроенный объект с уже готовыми методами и константами. Ты не создаешь его через new, а просто используешь: Math.abs(...), Math.sqrt(...) и так далее.
Константы Math
У Math есть важные числовые константы. Самые частые:
Math.PI— число π;Math.E— основание натурального логарифма.
console.log(Math.PI); // 3.141592653589793
console.log(Math.E); // 2.718281828459045
Почему это важно на практике: лучше брать точные встроенные значения, чем писать «3.14» вручную и накапливать погрешности.
Базовые операции, которые нужно знать сразу
console.log(Math.abs(-12)); // 12
console.log(Math.pow(2, 5)); // 32
console.log(Math.sqrt(64)); // 8
Math.abs(x)возвращает модуль числа;Math.pow(a, b)возводитaв степеньb;Math.sqrt(x)возвращает квадратный корень.
Смотри, что важно: каждый метод ожидает корректный числовой вход. Если дать значение, которое нельзя привести к числу, ты получишь NaN.
console.log(Math.abs('10')); // 10
console.log(Math.abs('hello')); // NaN
Что происходит с «неудобными» входами
Новички часто думают, что методы Math «всегда вернут число». Это не так.
console.log(Math.sqrt(-1)); // NaN
console.log(Math.pow(2, '3')); // 8
console.log(Math.pow(2, 'abc')); // NaN
Здесь часто путаются: часть строк может быть приведена к числу ('3'), а часть — нет ('abc').
Проверь себя: что вернет Math.sqrt('81') и почему?
Микро-сценарии из реальной разработки
- Расчет отклонения метрики без знака.
function getDelta(current, previous) {
return Math.abs(current - previous);
}
- Расчет площади круга в виджете статистики.
function getCircleArea(radius) {
return Math.PI * Math.pow(radius, 2);
}
- Вычисление длины диагонали карточки.
function diagonal(width, height) {
return Math.sqrt(width ** 2 + height ** 2);
}
- Базовая проверка «число ли это» перед вычислениями.
function safeSqrt(value) {
const num = Number(value);
if (!Number.isFinite(num) || num < 0) return null;
return Math.sqrt(num);
}
Типичные ошибки новичков
- Писать
new Math()вместо прямого использованияMath. - Не проверять входные данные перед вычислением.
- Игнорировать
NaNи передавать его дальше по цепочке. - Путать «умножить» и «возвести в степень».
Анти-провал: если вход приходит из формы (input), сначала явно приводи его к числу через Number(...), а потом передавай в Math.
Краткий итог
Math— встроенный инструмент для прикладной математики в JS.- Основные константы:
Math.PI,Math.E. - Базовые методы:
abs,pow,sqrt. - Некорректные входы дают
NaN, это нужно обрабатывать. - Чем раньше ты освоишь
Math, тем проще станут задачи с данными и интерфейсами.