Math
描述
与大多数全局对象不同,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()
-
返回数字
x
的1 + x
的自然对数(㏒e;也称为 ㏑)。 Math.log2()
-
返回输入的以 2 为底的对数。
Math.max()
-
返回零个或多个数字中最大的一个。
Math.min()
-
返回零个或多个数字中最小的一个。
Math.pow()
-
返回以
x
为底数,以y
为指数的幂(即,x
y
)。 Math.random()
-
返回
0
到1
之间的伪随机数。 Math.round()
-
返回输入四舍五入到最接近整数的值。
Math.sign()
-
返回输入的符号,指示它是正数、负数还是零。
Math.sin()
-
返回输入的正弦。
Math.sinh()
-
返回输入的双曲正弦。
Math.sqrt()
-
返回输入的正平方根。
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 语言规范 # sec-math-object |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。