Math
Базовый уровень Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Объект пространства имён Math содержит статические свойства и методы для математических констант и функций.
Math работает с типом Number. Он не работает с BigInt.
Описание
В отличие от большинства глобальных объектов, Math не является конструктором. Вы не можете использовать его с оператором new или вызывать объект Math как функцию. Все свойства и методы Math являются статическими.
Примечание: Многие функции Math имеют точность, которая зависит от реализации.
Это означает, что разные браузеры могут давать разный результат. Даже один и тот же движок JavaScript на другой ОС или архитектуре может давать разные результаты!
Статические свойства
-
Math.E - Число Эйлера и основание натурального логарифма; приблизительно
2.718. -
Math.LN10 - Натуральный логарифм
10; приблизительно2.303. -
Math.LN2 - Натуральный логарифм
2; приблизительно0.693. -
Math.LOG10E - Логарифм
Eпо основанию 10; приблизительно0.434. -
Math.LOG2E - Логарифм
Eпо основанию 2; приблизительно1.443. -
Math.PI - Отношение длины окружности круга к его диаметру; приблизительно
3.14159. -
Math.SQRT1_2 - Квадратный корень из ½; приблизительно
0.707. -
Math.SQRT2 - Квадратный корень из
2; приблизительно1.414. -
Math[Symbol.toStringTag] - Начальное значение свойства
[Symbol.toStringTag]является строкой"Math". Это свойство используется вObject.prototype.toString().
Статические методы
-
Math.abs() - Возвращает абсолютное значение входного аргумента.
-
Math.acos() - Возвращает арккосинус входного аргумента.
-
Math.acosh() - Возвращает гиперболический арккосинус входного аргумента.
-
Math.asin() - Возвращает арксинус входного аргумента.
-
Math.asinh() - Возвращает гиперболический арксинус числа.
-
Math.atan() - Возвращает арктангенс входного аргумента.
-
Math.atan2() - Возвращает арктангенс частного своих аргументов.
-
Math.atanh() - Возвращает гиперболический арктангенс входного аргумента.
-
Math.cbrt() - Возвращает кубический корень входного аргумента.
-
Math.ceil() - Возвращает наименьшее целое число, большее или равное входному аргументу.
-
Math.clz32() - Возвращает количество старших нулевых битов 32-битного целочисленного входного аргумента.
-
Math.cos() - Возвращает косинус входного аргумента.
-
Math.cosh() - Возвращает гиперболический косинус входного аргумента.
-
Math.exp() - Возвращает ex, где x — это аргумент, а e — число Эйлера (
2.718…, основание натурального логарифма). -
Math.expm1() - Возвращает результат вычитания
1изexp(x). -
Math.floor() - Возвращает наибольшее целое число, меньшее или равное входному аргументу.
-
Math.f16round() - Возвращает ближайшее представление числа с плавающей запятой половинной точности.
-
Math.fround() - Возвращает ближайшее представление числа с плавающей запятой одинарной точности.
-
Math.hypot() - Возвращает квадратный корень из суммы квадратов своих аргументов.
-
Math.imul() - Возвращает результат 32-битного целочисленного умножения входных аргументов.
-
Math.log() - Возвращает натуральный логарифм (㏒e; также ㏑) входного аргумента.
-
Math.log10() - Возвращает логарифм входного аргумента по основанию 10.
-
Math.log1p() - Возвращает натуральный логарифм (㏒e; также ㏑) от
1 + xдля числаx. -
Math.log2() - Возвращает логарифм входного аргумента по основанию 2.
-
Math.max() - Возвращает наибольшее из нуля или более чисел.
-
Math.min() - Возвращает наименьшее из нуля или более чисел.
-
Math.pow() - Возвращает основание
x, возведенное в степеньy(то есть,xy). -
Math.random() - Возвращает псевдослучайное число между
0и1. -
Math.round() - Возвращает значение входного аргумента, округлённое до ближайшего целого числа.
-
Math.sign() - Возвращает знак входного аргумента, указывая, является ли он положительным, отрицательным или нулём.
-
Math.sin() - Возвращает синус входного аргумента.
-
Math.sinh() - Возвращает гиперболический синус входного аргумента.
-
Math.sqrt() - Возвращает положительный квадратный корень входного аргумента.
-
Math.sumPrecise() - Возвращает сумму переданного итерируемого объекта чисел, избегая потери точности чисел с плавающей запятой в промежуточных результатах.
-
Math.tan() - Возвращает тангенс входного аргумента.
-
Math.tanh() - Возвращает гиперболический тангенс входного аргумента.
-
Math.trunc() - Возвращает целочисленную часть входного аргумента, удаляя все дробные цифры.
Примеры
Преобразование между градусами и радианами
Тригонометрические функции sin(), cos(), tan(), asin(), acos(), atan() и atan2() ожидают (и возвращают) углы в радианах.
Поскольку люди склонны думать в градусах, и некоторые функции (например, преобразования CSS) могут принимать градусы, полезно иметь под рукой функции, которые преобразуют одно в другое:
function degToRad(degrees) {
return degrees * (Math.PI / 180);
}
function radToDeg(rad) {
return rad / (Math.PI / 180);
}
Вычисление высоты равностороннего треугольника
Если мы хотим вычислить высоту равностороннего треугольника, и мы знаем, что длина его стороны равна 100, мы можем использовать формулу: длина прилежащей стороны, умноженная на тангенс угла, равна противолежащей стороне.

В JavaScript мы можем сделать это следующим образом:
50 * Math.tan(degToRad(60));
Мы используем нашу функцию degToRad() для преобразования 60 градусов в радианы, поскольку Math.tan() ожидает входное значение в радианах.
Возврат случайного целого числа между двумя границами
Этого можно достичь, комбинируя Math.random() и Math.floor():
function random(min, max) {
const num = Math.floor(Math.random() * (max - min + 1)) + min;
return num;
}
random(1, 10);
Спецификации
| Спецификация |
|---|
| Спецификация языка ECMAScript® 2027 # sec-math-object |
Совместимость с браузерами
| Десктоп | Мобильные | Сервер | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
Math |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
E |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
LN10 |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
LN2 |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
LOG10E |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
LOG2E |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
PI |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
SQRT1_2 |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
SQRT2 |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
abs |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
acos |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
acosh |
38 |
12 |
25 |
25 |
8 |
38 |
25 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
asin |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
asinh |
38 |
12 |
25 |
25 |
8 |
38 |
25 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
atan |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
atan2 |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
atanh |
38 |
12 |
25 |
25 |
8 |
38 |
25 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
cbrt |
38 |
12 |
25 |
25 |
8 |
38 |
25 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
ceil |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
clz32 |
38 |
12 |
31 |
25 |
7 |
38 |
31 |
25 |
7 |
3.0 |
38 |
7 |
1.0.0 |
1.0 |
0.12.0 |
cos |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
cosh |
38 |
12 |
25 |
25 |
8 |
38 |
25 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
exp |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
expm1 |
38 |
12 |
25 |
25 |
8 |
38 |
25 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
f16round |
135 |
135 |
129 |
120 |
18.2 |
135 |
129 |
89 |
18.2 |
29.0 |
135 |
18.2 |
1.1.23 |
1.43 |
24.0.0 |
floor |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
fround |
38 |
12 |
26 |
25 |
8 |
38 |
26 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
hypot |
38 |
12 |
27 |
25 |
8 |
38 |
27 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
imul |
28 |
12 |
20 |
16 |
7 |
28 |
20 |
15 |
7 |
1.5 |
4.4 |
7 |
1.0.0 |
1.0 |
0.12.0 |
log |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
log10 |
38 |
12 |
25 |
25 |
8 |
38 |
25 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
log1p |
38 |
12 |
25 |
25 |
8 |
38 |
25 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
log2 |
38 |
12 |
25 |
25 |
8 |
38 |
25 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
max |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
min |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
pow |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
random |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
round |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
sign |
38 |
12 |
25 |
25 |
9 |
38 |
25 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
sin |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
sinh |
38 |
12 |
25 |
25 |
8 |
38 |
25 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
sqrt |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
sumPrecise |
147 |
147 |
137 |
131 |
26.2 |
147 |
137 |
98 |
26.2 |
Нет |
147 |
26.2 |
1.2.18 |
2.7.8 |
Нет |
tan |
1 |
12 |
1 |
3 |
1 |
18 |
4 |
10.1 |
1 |
1.0 |
4.4 |
1 |
1.0.0 |
1.0 |
0.10.0 |
tanh |
38 |
12 |
25 |
25 |
8 |
38 |
25 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
trunc |
38 |
12 |
25 |
25 |
8 |
38 |
25 |
25 |
8 |
3.0 |
38 |
8 |
1.0.0 |
1.0 |
0.12.0 |
Смотри также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math