Math
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Объект 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)
Экспериментальная возможность-
Возвращает гиперболический арккосинус числа.
Math.asin(x)
-
Возвращает арксинус числа.
Math.asinh(x)
Экспериментальная возможность-
Возвращает гиперболический арксинус числа.
Math.atan(x)
-
Возвращает арктангенс числа.
Math.atanh(x)
Экспериментальная возможность-
Возвращает гиперболический арктангенс числа.
Math.atan2(y, x)
-
Возвращает арктангенс от частного своих аргументов.
Math.cbrt(x)
Экспериментальная возможность-
Возвращает кубический корень числа.
Math.ceil(x)
-
Возвращает значение числа, округлённое к большему целому.
Math.clz32(x)
Экспериментальная возможность-
Возвращает количество ведущих нулей 32-битного целого числа.
Math.cos(x)
-
Возвращает косинус числа.
Math.cosh(x)
Экспериментальная возможность-
Возвращает гиперболический косинус числа.
Math.exp(x)
-
Возвращает Ex, где x — аргумент, а E — число Эйлера (2,718…), основание натурального логарифма.
Math.expm1(x)
Экспериментальная возможность-
Возвращает
exp(x)
, из которого вычли единицу. Math.floor(x)
-
Возвращает значение числа, округлённое к меньшему целому.
Math.fround(x)
Экспериментальная возможность-
Возвращает ближайшее число с плавающей запятой одинарной точности, представляющие это число.
Math.hypot([x[, y[, …]]])
Экспериментальная возможность-
Возвращает квадратный корень из суммы квадратов своих аргументов.
Math.imul(x)
Экспериментальная возможность-
Возвращает результат умножения 32-битных целых чисел.
Math.log(x)
-
Возвращает натуральный логарифм числа (loge, также известен как ln).
Math.log1p(x)
Экспериментальная возможность-
Возвращает натуральный логарифм числа
1 + x
(loge, также известен как ln). Math.log10(x)
Экспериментальная возможность-
Возвращает десятичный логарифм числа.
Math.log2(x)
Экспериментальная возможность-
Возвращает двоичный логарифм числа.
Math.max([x[, y[, …]]])
-
Возвращает наибольшее число из своих аргументов.
Math.min([x[, y[, …]]])
-
Возвращает наименьшее число из своих аргументов.
Math.pow(a, n)
-
Возвращает
a
вn
-й степени, то есть an. Math.random()
-
Возвращает псевдослучайное число в диапазоне от 0 до 1.
Math.round(x)
-
Возвращает значение числа, округлённое до ближайшего целого.
Math.sign(x)
Экспериментальная возможность-
Возвращает знак числа, указывающий, является ли число положительным, отрицательным или нулём.
Math.sin(x)
-
Возвращает синус числа.
Math.sinh(x)
Экспериментальная возможность-
Возвращает гиперболический синус числа.
Math.sqrt(x)
-
Возвращает положительный квадратный корень числа.
Math.tan(x)
-
Возвращает тангенс числа.
Math.tanh(x)
Экспериментальная возможность-
Возвращает гиперболический тангенс числа.
Math.toSource()
Не стандартно-
Возвращает строку
"Math"
. Math.trunc(x)
Экспериментальная возможность-
Возвращает целую часть числа, убирая дробные цифры.
Расширение объекта 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`
Спецификации
Specification |
---|
ECMAScript Language Specification # sec-math-object |
Совместимость с браузерами
BCD tables only load in the browser