Введение в 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') и почему?

Микро-сценарии из реальной разработки

  1. Расчет отклонения метрики без знака.
function getDelta(current, previous) {
  return Math.abs(current - previous);
}
  1. Расчет площади круга в виджете статистики.
function getCircleArea(radius) {
  return Math.PI * Math.pow(radius, 2);
}
  1. Вычисление длины диагонали карточки.
function diagonal(width, height) {
  return Math.sqrt(width ** 2 + height ** 2);
}
  1. Базовая проверка «число ли это» перед вычислениями.
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, тем проще станут задачи с данными и интерфейсами.