Math

Baseline 广泛可用 *

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

* 此特性的某些部分可能存在不同级别的支持。

Math 命名空间对象包含数学常量和函数的静态属性和方法。

MathNumber 类型一起使用。它不与 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()

返回 exp(x) 减去 1 的结果。

Math.floor()

返回小于或等于输入值的最大整数。

Math.f16round()

返回输入值最接近的 半精度浮点数表示。

Math.fround()

返回输入值最接近的 单精度浮点数表示。

Math.hypot()

返回其参数平方和的平方根。

Math.imul()

返回输入值 32 位整数乘法的结果。

Math.log()

返回输入值的自然对数(㏒e;也称为 ㏑)。

Math.log10()

返回输入值的以 10 为底的对数。

Math.log1p()

返回数字 x1 + x 的自然对数(㏒e;也称为 ㏑)。

Math.log2()

返回输入值的以 2 为底的对数。

Math.max()

返回零个或多个数字中的最大值。

Math.min()

返回零个或多个数字中的最小值。

Math.pow()

返回底数 xy 次幂(即 xy)。

Math.random()

返回一个介于 01 之间的伪随机数。

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 变换)可以接受度,因此提供用于在这两者之间进行转换的函数非常有用。

js
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 中,我们可以用以下方式实现:

js
50 * Math.tan(degToRad(60));

我们使用 degToRad() 函数将 60 度转换为弧度,因为 Math.tan() 期望以弧度为单位的输入值。

返回两个边界之间的随机整数

这可以通过结合使用 Math.random()Math.floor() 来实现。

js
function random(min, max) {
  const num = Math.floor(Math.random() * (max - min + 1)) + min;
  return num;
}

random(1, 10);

规范

规范
ECMAScript® 2026 语言规范
# sec-math-object

浏览器兼容性

另见