Math

Объект Math является встроенным объектом, хранящим в своих свойствах и методах различные математические константы и функции. Объект Math не является функциональным объектом.

Math не работает с числами типа BigInt.

Описание

В отличие от других глобальных объектов, объект Math не является конструктором. Все свойства и методы объекта Math являются статическими. Вы ссылаетесь на константу π через Math.PI и вызываете функцию синуса через Math.sin(x), где x является аргументом метода. Константы в JavaScript определены с полной точностью действительных чисел.

Свойства

Math.E
Число Эйлера или Непера, основание натуральных логарифмов, приблизительно равное 2,718.
Math.LN2
Натуральный логарифм из 2, приблизительно равен 0,693.
Math.LN10
Натуральный логарифм из 10, приблизительно равен 2,303.
Math.LOG2E
Двоичный логарифм из E, приблизительно равен 1,443.
Math.LOG10E
Десятичный логарифм из E, приблизительно равен 0,434.
Math.PI
Отношение длины окружности круга к его диаметру, приблизительно равно 3,14159.
Math.SQRT1_2
Квадратный корень из 1/2; или, что тоже самое, 1, делённая на квадратный корень из 2, приблизительно равен 0,707.
Math.SQRT2
Квадратный корень из 2, приблизительно равен 1,414.

Методы

Обратите внимание, что тригонометрические функции (sin(), cos(), tan(), asin(), acos(), atan() и atan2()) принимают в параметрах или возвращают углы в радианах. Для преобразования радианов в градусы, поделите их на величину (Math.PI / 180); для преобразования в обратном направлении, умножьте градусы на эту же величину.

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

Math.abs(x)
Возвращает абсолютное значение числа.
Math.acos(x)
Возвращает арккосинус числа.
Math.acosh(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает гиперболический арккосинус числа.
Math.asin(x)
Возвращает арксинус числа.
Math.asinh(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает гиперболический арксинус числа.
Math.atan(x)
Возвращает арктангенс числа.
Math.atanh(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает гиперболический арктангенс числа.
Math.atan2(y, x)
Возвращает арктангенс от частного своих аргументов.
Math.cbrt(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает кубический корень числа.
Math.ceil(x)
Возвращает значение числа, округлённое к большему целому.
Math.clz32(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает количество ведущих нулей 32-битного целого числа.
Math.cos(x)
Возвращает косинус числа.
Math.cosh(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает гиперболический косинус числа.
Math.exp(x)
Возвращает Ex, где x — аргумент, а E — число Эйлера (2,718…), основание натурального логарифма.
Math.expm1(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает exp(x), из которого вычли единицу.
Math.floor(x)
Возвращает значение числа, округлённое к меньшему целому.
Math.fround(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает ближайшее число с плавающей запятой одинарной точности, представляюще это число.
Math.hypot([x[, y[, …]]]) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает квадратный корень из суммы квадратов своих аргументов.
Math.imul(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает результат умножения 32-битных целых чисел.
Math.log(x)
Возвращает натуральный логарифм числа (loge, также известен как ln).
Math.log1p(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает натуральный логарифм числа 1 + x (loge, также известен как ln).
Math.log10(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает десятичный логарифм числа.
Math.log2(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает двоичный логарифм числа.
Math.max([x[, y[, …]]])
Возвращает наибольшее число из своих аргументов.
Math.min([x[, y[, …]]])
Возвращает наименьшее число из своих аргументов.
Math.pow(x, y)
Возвращает основание в степени экспоненты, то есть, значение выражения основаниеэкспонента.
Math.random()
Возвращает псевдослучайное число в диапазоне от 0 до 1.
Math.round(x)
Возвращает значение числа, округлённое до ближайшего целого.
Math.sign(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает знак числа, указывающий, является ли число положительным, отрицательным или нулём.
Math.sin(x)
Возвращает синус числа.
Math.sinh(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает гиперболический синус числа.
Math.sqrt(x)
Возвращает положительный квадратный корень числа.
Math.tan(x)
Возвращает тангенс числа.
Math.tanh(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает гиперболический тангенс числа.
Math.toSource() Это API не было стандартизировано.
Возвращает строку "Math".
Math.trunc(x) Это экспериментальное API, которое не должно использоваться в рабочем коде.
Возвращает целую часть числа, убирая дробные цифры.

Расширение объекта Math

Как и большинство встроенных объектов в Javascript, объект Math может быть расширен пользовательскими способами и методами. Чтобы расширить объект Math, не используют prototype. Вместо этого, расширяют Math напрямую: 

Math.propName = propValue;
Math.methodName = methodRef;

Например, следующий код добавляет метод к объекту Math для вычисления наибольшего общего делителя списка аргументов.

/* Вариативная функция -- Возвращает наибольший общий делитель списка аргументов */
Math.gcd = function() {
    if (arguments.length == 2) {
        if (arguments[1] == 0)
            return arguments[0];
        else
            return Math.gcd(arguments[1], arguments[0] % arguments[1]);
    } else if (arguments.length > 2) {
        var result = Math.gcd(arguments[0], arguments[1]);
        for (var i = 2; i < arguments.length; i++)
            result = Math.gcd(result, arguments[i]);
        return result;
    }
};

Попробуйте:

console.log(Math.gcd(20, 30, 15, 70, 40)); // `5`

Спецификации

Спецификация Статус Комментарии
ECMAScript 1-е издание. Стандарт Изначальное определение. Реализована в JavaScript 1.1.
ECMAScript 5.1 (ECMA-262)
Определение 'Math' в этой спецификации.
Стандарт
ECMAScript 2015 (6th Edition, ECMA-262)
Определение 'Math' в этой спецификации.
Стандарт Добавлены новые методы: log10(), log2(), log1p(), expm1(), cosh(), sinh(), tanh(), acosh(), asinh(), atanh(), hypot(), trunc(), sign(), imul(), fround(), cbrt() и clz32().
ECMAScript (ECMA-262)
Определение 'Math' в этой спецификации.
Живой стандарт

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также