W3docs

Объект Math в JavaScript

Объект Math в JavaScript: округление, степени, корни, случайные числа, тригонометрия, константы Math.PI и Math.E — с примерами и типичными ошибками.

Введение в объект Math JavaScript

Math — это встроенный объект JavaScript, объединяющий математические константы и функции. В отличие от большинства объектов, вы никогда не создаёте его экземпляр с помощью newMath является статическим, поэтому всё вызывается непосредственно на нём: Math.round(...), Math.PI и так далее. Все его методы работают с числами и дополняют стандартные арифметические операторы (+, -, *, /, %, **).

Это руководство охватывает назначение каждого распространённого метода, типичные ошибки (отрицательное округление, генерация случайного числа в диапазоне, поведение при некорректных входных данных) и примеры применения этих функций в реальном коде — в анимации и финансовых вычислениях.

Популярные функции Math

ФункцияОписание
Math.abs(x)Возвращает абсолютное значение x.
Math.ceil(x)Возвращает наименьшее целое число, большее или равное x.
Math.floor(x)Возвращает наибольшее целое число, меньшее или равное x.
Math.round(x)Округляет x до ближайшего целого числа.
Math.max(x, y, ...)Возвращает наибольшее из нуля или более чисел, переданных в качестве аргументов.
Math.min(x, y, ...)Возвращает наименьшее из нуля или более чисел, переданных в качестве аргументов.
Math.pow(x, y)Возвращает x, возведённое в степень y.
Math.sqrt(x)Возвращает квадратный корень из x.
Math.cbrt(x)Возвращает кубический корень из x.
Math.random()Возвращает псевдослучайное число от 0 до 1.
Math.log(x)Возвращает натуральный логарифм (логарифм по основанию e) числа x.
Math.log10(x)Возвращает логарифм числа x по основанию 10.
Math.exp(x)Возвращает e^x, где x — аргумент, а e — число Эйлера (приблизительно 2.71828).
Math.sin(x)Возвращает синус числа x (x задаётся в радианах).
Math.cos(x)Возвращает косинус числа x (x задаётся в радианах).
Math.tan(x)Возвращает тангенс числа x (x задаётся в радианах).
Math.asin(x)Возвращает арксинус числа x в радианах.
Math.acos(x)Возвращает арккосинус числа x в радианах.
Math.atan(x)Возвращает арктангенс числа x в радианах.
Math.atan2(y, x)Возвращает арктангенс частного своих аргументов (y/x).

Основы: ключевые функции Math в JavaScript

Math.round()

Функция Math.round() округляет число до ближайшего целого. Если дробная часть равна 0.5 или больше, число округляется вверх; в противном случае — вниз.

Пример:

javascript— editable

Подводный камень — отрицательные числа и .5: Math.round() при равноудалённости всегда округляет в сторону положительной бесконечности, а не «от нуля». Поэтому Math.round(-2.5) равно -2, а не -3. Если нужно просто отбросить дробную часть, используйте Math.trunc().

javascript— editable

Math.ceil()

Функция Math.ceil() округляет число вверх до следующего наибольшего целого, независимо от дробной части.

Пример:

javascript— editable

Math.floor()

В противоположность ей, Math.floor() округляет число вниз до ближайшего целого, отбрасывая дробную часть.

Пример:

javascript— editable

Math.sqrt()

Функция Math.sqrt() возвращает квадратный корень из числа.

Пример:

javascript— editable

Math.pow()

Math.pow() возводит число в указанную степень. В современном JavaScript для того же результата можно использовать оператор возведения в степень **4 ** 2 эквивалентно Math.pow(4, 2).

Пример:

javascript— editable

Math.trunc() и Math.sign()

Math.trunc() удаляет дробную часть числа, оставляя целую часть нетронутой — без какого-либо округления. Это делает его предсказуемым как для положительных, так и для отрицательных чисел, в отличие от Math.floor() (который округляет в сторону -Infinity).

Math.sign() возвращает знак числа: 1 для положительных, -1 для отрицательных и 0 (или -0) для нуля.

Пример:

javascript— editable

Обработка некорректных входных данных: NaN

Методы Math не генерируют исключение при неверных данных — они возвращают NaN («Not a Number»). Например, квадратный корень из отрицательного числа или вызов любого метода с нечисловым значением даёт NaN. Используйте Number.isNaN(), чтобы проверить результат перед его использованием.

Пример:

javascript— editable

Продвинутые операции: тригонометрия и не только

Math.sin(), Math.cos(), Math.tan()

Эти функции незаменимы для тригонометрических вычислений и соответствуют синусу, косинусу и тангенсу.

Пример:

javascript— editable

Math.random()

Math.random() генерирует псевдослучайное число от 0 (включительно) до 1 (не включая). Широко применяется в разработке игр и симуляциях.

Пример:

javascript— editable

Самая распространённая задача — случайное целое число в диапазоне. Само по себе Math.random() редко даёт то, что нужно; обычно требуется целое число между min и max. Для этого масштабируют значение от 0 до 1 и применяют floor. Следующая формула возвращает целое число от min до max включительно:

javascript— editable

Обратите внимание: Math.random() не является криптографически безопасным. Для генерации случайных данных в целях безопасности (токены, пароли) используйте crypto.getRandomValues().

Math.max() и Math.min()

Эти функции возвращают наибольшее и наименьшее число из набора аргументов соответственно.

Пример:

javascript— editable

Реальные применения: использование функций Math

Математические функции JavaScript — это не просто теория; они имеют практическое применение в самых разных областях: анимация, финансовые расчёты, научные вычисления и многое другое.

Практический пример: анимация с тригонометрией

Представьте веб-анимацию, в которой объект движется по круговой траектории. Это движение можно реализовать с помощью функций Math.sin() и Math.cos().

// Circular motion parameters
let radius = 20;
let angle = 0;

function animateCircle() {
    let x = radius * Math.cos(angle);
    let y = radius * Math.sin(angle);
    angle += 0.01;
    // Update the object's position here
}

Интерактивный обучающий инструмент: создание математической викторины

С помощью математических функций JavaScript можно разработать интерактивную викторину, предлагающую пользователям случайные арифметические задачи.

javascript— editable

Дополнительно: константы Math и не только

Помимо набора функций, объект Math JavaScript предоставляет несколько важных математических констант. Это не просто фиксированные значения — они являются фундаментальными элементами различных сложных вычислений, особенно в научной и математической области.

Math.PI

Math.PI представляет отношение длины окружности к её диаметру. Оно приблизительно равно 3.14159. Эта константа незаменима в вычислениях, связанных с окружностями и сферами, например при вычислении площади круга (Area = Math.PI * radius * radius) или длины окружности (Circumference = 2 * Math.PI * radius).

Пример:

javascript— editable

Math.E

Math.E, известное как число Эйлера, приблизительно равно 2.718. Это основание натурального логарифма, широко используемое в расчётах роста, вычислении сложных процентов и анализе комплексных чисел. В JavaScript Math.E часто применяется совместно с функцией Math.exp(), которая возводит Math.E в указанную степень.

Пример:

javascript— editable

Math.LN2

Math.LN2 представляет натуральный логарифм числа 2, приблизительно равный 0.693. Эта константа особенно полезна в алгоритмах с логарифмическими вычислениями, например при расчёте времени удвоения в моделях роста популяции или в некоторых финансовых расчётах.

Пример:

javascript— editable

Другие важные константы

  • Math.LN10: представляет натуральный логарифм числа 10, полезен при масштабировании логарифмических данных.
  • Math.LOG2E: логарифм числа Эйлера по основанию 2. Используется при переводе логарифмов из основания E в основание 2.
  • Math.LOG10E: логарифм числа Эйлера по основанию 10, применяется в аналогичных контекстах, что и Math.LOG2E, но для логарифмов по основанию 10.
  • Math.SQRT1_2: представляет квадратный корень из 1/2, часто используется в геометрических вычислениях.
  • Math.SQRT2: квадратный корень из 2 — константа, часто встречающаяся в алгебре, геометрии и технических расчётах.

Практическое применение математических констант

Понимание и использование этих констант может значительно расширить функциональность ваших JavaScript-приложений. Например, в разработке игр Math.PI незаменим для расчёта траекторий и поворотов. В финансовых технологиях Math.E и связанные с ним логарифмические константы критически важны для вычисления сложных процентов и графиков амортизации.

Заключение

Объект Math предоставляет инструменты для округления, возведения в степень, извлечения корней, генерации случайных чисел, тригонометрии и набор полезных констант — без необходимости что-либо импортировать. Главное, что нужно помнить: Math статичен (без new), Math.round() при равноудалённости округляет в сторону +Infinity, Math.trunc() — предсказуемый способ отбросить дробную часть, для получения целого числа в диапазоне нужно масштабировать Math.random(), а при некорректных входных данных возвращается NaN, а не ошибка.

Связанные темы

  • JavaScript Numbers — числовые литералы, точность и преобразование
  • JavaScript Operators — арифметика, включая оператор возведения в степень **
  • JavaScript Functions — оборачивайте переиспользуемые вычисления, как в примере с randomInt выше
  • Comparison Operators — используйте совместно с Math.max/Math.min для проверки границ

Практика

Практика
Какие из следующих утверждений о JavaScript Math верны?
Какие из следующих утверждений о JavaScript Math верны?
Was this page helpful?