Math

基线 广泛可用

此功能已得到良好建立,可在许多设备和浏览器版本中使用。它自以下时间起在浏览器中可用 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()

返回以x为底数,以y为指数的幂(即,xy)。

Math.random()

返回01之间的伪随机数。

Math.round()

返回输入四舍五入到最接近整数的值。

Math.sign()

返回输入的符号,指示它是正数、负数还是零。

Math.sin()

返回输入的正弦。

Math.sinh()

返回输入的双曲正弦。

Math.sqrt()

返回输入的正平方根。

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 语言规范
# sec-math-object

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅