Spec-Zone.ru › JavaScript

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, мы можем использовать формулу: длина прилежащей стороны, умноженная на тангенс угла, равна противолежащей стороне.

An equilateral triangle where a perpendicular of one edge is drawn from the opposite vertex, forming a right triangle with three sides marked as "adjacent", "opposite", and "hypotenuse". The angle between the "adjacent" and "hypotenuse" sides is 60 degrees.

В 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

Смотри также

  • Number

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API