JavaScript Math
JavaScript 内置 Math 对象封装了一些数学相关的静态属性常量和静态工具类方法,方便我们进行数学计算。
JavaScript 内置 Math 对象封装了一些数学相关的属性常量和工具类方法,方便我们进行数学计算。
Math 对象的所有属性和方法都是静态,这意味着可以直接用 Math
对象调用属性和方法,而无须先使用构造函数构造对象。事实上, Math 对象没有构造函数。
Math.PI; // 圆周率的值: 3.141592653589793
Math.abs(x); // 返回数 x 的绝对值
Math 属性(常数)
Math 对象定义了 8 个常用的数学常量属性:
属性 | 说明 |
---|---|
Math.E |
欧拉常数,也是自然对数的底数,约等于 2.718 。 |
Math.PI |
圆周率,一个圆的周长和直径之比,约等于 3.14159 。 |
Math.SQRT2 |
二分之一的平方根,同时也是 2 的平方根的倒数,约等于 0.707 。 |
Math.SQRT1_2 |
2 的平方根,约等于 1.414 。 |
Math.LN2 |
2 的自然对数,约等于 0.693 。 |
Math.LN10 |
10 的自然对数,约等于 2.303 。 |
Math.LOG2E |
以 2 为底的 E 的对数,约等于 1.443 。 |
Math.LOG10E |
以 10 为底的 E 的对数,约等于 0.434 。 |
Math 方法
Math 对象定义了 35 个常用的数学计算方法:
属性 | 说明 |
---|---|
Math.abs(x) |
返回一个数的绝对值。 |
Math.acos(x) |
返回一个数的反余弦值。 |
Math.acosh(x) |
返回一个数的反双曲余弦值。 |
Math.asin(x) |
返回一个数的反正弦值。 |
Math.asinh(x) |
返回一个数的反双曲正弦值。 |
Math.atan(x) |
返回一个数的反正切值。 |
Math.atanh(x) |
返回一个数的反双曲正切值。 |
Math.atan2(y, x) |
返回 y/x 的反正切值。 |
Math.cbrt(x) |
返回一个数的立方根。 |
Math.ceil(x) |
返回大于一个数的最小整数,即一个数向上取整后的值。 |
Math.clz32(x) |
返回一个 32 位整数的前导零的数量。 |
Math.cos(x) |
返回一个数的余弦值。 |
Math.cosh(x) |
返回一个数的双曲余弦值。 |
Math.exp(x) |
返回欧拉常数的参数次方 Ex ,其中 x 为参数,E 是欧拉常数(2.718…,自然对数的底数)。 |
Math.expm1(x) |
返回 Math.exp(x) - 1 的值。 |
Math.floor(x) |
返回小于一个数的最大整数,即一个数向下取整后的值。 |
Math.fround(x) |
返回最接近一个数的单精度浮点型表示。 |
Math.hypot([x[, y[, …]]]) |
返回其所有参数平方和的平方根。 |
Math.imul(x, y) |
返回 32 位整数乘法的结果。 |
Math.log(x) |
返回一个数的自然对数(㏒e,即 ㏑)。 |
Math.log1p(x) |
返回一个数加 1 的和的自然对数(㏒e,即 ㏑)。 |
Math.log10(x) |
返回一个数以 10 为底数的对数。 |
Math.log2(x) |
返回一个数以 2 为底数的对数。 |
Math.max([x[, y[, …]]]) |
返回零到多个数值中最大值。 |
Math.min([x[, y[, …]]]) |
返回零到多个数值中最小值。 |
Math.pow(x, y) |
返回一个数的 y 次幂。 |
Math.random() |
返回一个 0 到 1 之间的伪随机数。 |
Math.round(x) |
返回四舍五入后的整数。 |
Math.sign(x) |
返回一个数的符号,得知一个数是正数、负数还是 0。 (ES6 新增) |
Math.sin(x) |
返回一个数的正弦值。 |
Math.sinh(x) |
返回一个数的双曲正弦值。 |
Math.sqrt(x) |
返回一个数的平方根。 |
Math.tan(x) |
返回一个数的正切值。 |
Math.tanh(x) |
返回一个数的双曲正切值。 |
Math.toSource() |
返回字符串 “Math”。 |
Math.trunc(x) |
返回一个数的整数部分,直接去除其小数点及之后的部分。 |
数字取整
数字取整常用方法有 4 种:
Math.ceil(x)
: 返回大于一个数的最小整数,即一个数向上取整后的值。Math.floor(x)
: 返回小于一个数的最大整数,即一个数向下取整后的值。Math.round(x)
: 返回四舍五入后的整数。Math.trunc(x)
: 返回一个数的整数部分,直接去除其小数点及之后的部分。
Math.ceil()
Math.ceil(x)
返回一个数 x
向上取整后的值:
Math.ceil(4.9); // 返回 5
Math.ceil(4.7); // 返回 5
Math.ceil(4.4); // 返回 5
Math.ceil(4.2); // 返回 5
Math.ceil(-4.2); // 返回 -4
Math.floor()
Math.floor(x)
返回一个数 x
向下取整后的值:
Math.floor(4.9); // 返回 4
Math.floor(4.7); // 返回 4
Math.floor(4.4); // 返回 4
Math.floor(4.2); // 返回 4
Math.floor(-4.2); // 返回 -5
Math.round()
Math.round(x)
返回一个数 x
四舍五入后的整数:
Math.round(4.9); // 返回 5
Math.round(4.7); // 返回 5
Math.round(4.4); // 返回 4
Math.round(4.2); // 返回 4
Math.round(-4.2); // 返回 -4
Math.trunc()
Math.trunc(x)
返回一个数 x
的整数部分:
Math.trunc(4.9); // 返回 4
Math.trunc(4.7); // 返回 4
Math.trunc(4.4); // 返回 4
Math.trunc(4.2); // 返回 4
Math.trunc(-4.2); // 返回 -4
Math.sign()
Math.sign(x)
返回一个数 x
的符号,得知一个数是正数、负数还是 0。 此方法共有 5 种返回值, 分别是 1, -1, 0, -0, NaN. 代表的各是正数, 负数, 正零, 负零, NaN。
Math.sign(-4); // 返回 -1
Math.sign(0); // 返回 0
Math.sign(4); // 返回 1
Math.pow()
Math.pow(x, y)
返回 x
的 y
次幂值:
Math.pow(8, 2); // 返回 64
Math.sqrt()
Math.sqrt(x)
返回 x
的平方根:
Math.sqrt(64); // 返回 8
Math.abs()
Math.abs(x)
返回 x 的绝对(正)值:
Math.abs(-4.7); // 返回 4.7
Math.sin()
Math.sin(x)
返回角度 x
(以弧度给出)的正弦值(介于 -1 和 1 之间的值)。
如果要使用度数而不是弧度,则必须将度数转换为弧度:
以弧度为单位的角度 = 以度为单位的角度 x PI / 180。
Math.sin((90 * Math.PI) / 180); // 返回 1 ,单位是弧度
Math.cos()
Math.cos(x)
返回角度 x
(以弧度给出)的余弦值(介于 -1 和 1 之间的值)。
如果要使用度数而不是弧度,则必须将度数转换为弧度:
以弧度为单位的角度 = 以度为单位的角度 x PI / 180。
Math.cos((0 * Math.PI) / 180); // 返回 1 ,单位是弧度
Math.min() 和 Math.max()
Math.min()
和 Math.max()
可用于在参数列表中查找最小或最大值:
Math.min(0, 150, 30, 20, -8, -200); // 返回 -200
Math.max(0, 150, 30, 20, -8, -200); // 返回 150
Math.random()
Math.random()
返回 0(含)和 1(不含)之间的随机数:
Math.random(); // 返回 a random number
您将在本教程的下一章中了解有关 Math.random()
更多信息。
Math.log() 方法
Math.log(x)
返回一个数 x
的自然对数:
Math.log(1); // 返回 0
Math.log2() 方法
Math.log2(x)
返回一个数 x
的以 2 为底的对数。
我们必须乘以 2 多少次才能得到 8?
Math.log2(8); // 返回 3
Math.log10() 方法
Math.log10(x)
返回一个数 x
的以 10 为底的对数。
Math.log10(1000); // 返回 3