1. 简介
Math 对象保存数学公式和信息,与我们在 JavaScript 直接编写的计算功能相比,Math 对象提供的计算功能执行起来要快得多,还提供了辅助完成这些计算的属性和方法。
2. 属性
| 属性 | 说明 |
|---|---|
| Math.E | 自然对数的底数,即常量 e 的值 |
| Math.LN10 | 10 的自然对数 |
| Math.LN2 | 2 的自然对数 |
| Math.LOG2E | 以 2 为底 e 的对数 |
| Math.LOG10E | 以 10 为底 e 的对数 |
| Math.PI | π的值 |
| Math.SQRT1_2 | 1/2 的平方根,即 2 的平方根的倒数 |
| Math.SQRT2 | 2 的平方根 |
3. 方法
3.1 最大最小
min()确定一组数值的最小值max()确定一组数值的最大值
可以接受任意多个数值参数
计算数组中的最大值
可以使用 apply() 方法避免传入大量参数
var values = [1, 2, 3, 4, 5, 6, 7, 8];var max = Math.max.apply(Math, values);
3.2 舍入
ceil()向上舍入,总是将数值向上舍入为最接近的整数floor()向下舍入,总是将数值向下舍入为最接近的整数round()标准舍入,即四舍五入trunc()去除小数部分,返回其整数部分
3.3 随机
random()返回[ 0, 1 )之间的一个随机数
利用此方法从某个整数范围内随机选择值(lowerValue, upperValue)
value = Math.round(Math.random() * (upperValue - lowerValue) + lowerValue);//=> 使用 floor、trunc 则不包含最大值//=> 使用 round 则包含最大最小//=> 使用 ceil 则不包含最小值
3.4 符号
abs(num)返回num的绝对值sign(num)判断num的符号,负数返回-1,0返回0,正数返回1
3.5 幂
exp(num)返回Math.E的num次幂expml(num)返回Math.E的num次幂 减1pow(num, power)返回num的power次幂sqrt(num)返回num的平方根cbrt(num)返回num的立方根hypot(...values)返回所有参数的平方和的平方根
3.6 对数
log(num)返回num的自然对数log1p(num)返回num + 1的自然对数log2(num)返回num以2为底的对数log10(num)返回num以10为底的对数
3.7 三角函数
acos(x)返回 x 的反余弦值asin(x)返回 x 的反正弦值atan(x)返回 x 的反正切值acosh(x)返回 x 的反双曲余弦值asinh(x)返回 x 的反双曲正弦值atanh(x)返回 x 的反双曲正切值cosh(x)返回 x 的双曲余弦值tanh(x)返回 x 的双曲正切值cos(x)返回 x 的余弦值sin(x)返回 x 的正弦值tan(x)返回 x 的正切值
3.4 其他方法
| 方法 | 说明 |
|---|---|
| Math.clz32(num) | 返回 num 的 32 位二进制整数表示形式的前导 0 的个数 |
| Math.fround(num) | 返回 num 的单精度浮点数形式 |
| Math.imul(x, y) | 返回两个参数以 32 位整数形式相乘的结果 |
