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() 方法避免传入大量参数

  1. var values = [1, 2, 3, 4, 5, 6, 7, 8];
  2. var max = Math.max.apply(Math, values);

3.2 舍入

  • ceil() 向上舍入,总是将数值向上舍入为最接近的整数

  • floor() 向下舍入,总是将数值向下舍入为最接近的整数

  • round() 标准舍入,即四舍五入

  • trunc() 去除小数部分,返回其整数部分

3.3 随机

  • random() 返回 [ 0, 1 ) 之间的一个随机数

利用此方法从某个整数范围内随机选择值(lowerValue, upperValue)

  1. value = Math.round(Math.random() * (upperValue - lowerValue) + lowerValue);
  2. //=> 使用 floor、trunc 则不包含最大值
  3. //=> 使用 round 则包含最大最小
  4. //=> 使用 ceil 则不包含最小值

3.4 符号

  • abs(num) 返回 num 的绝对值

  • sign(num) 判断 num 的符号,负数返回 -10 返回 0,正数返回 1

3.5 幂

  • exp(num) 返回 Math.Enum 次幂

  • expml(num) 返回 Math.Enum 次幂 减 1

  • pow(num, power) 返回 numpower 次幂

  • sqrt(num) 返回 num 的平方根

  • cbrt(num) 返回 num 的立方根

  • hypot(...values) 返回所有参数的平方和的平方根

3.6 对数

  • log(num) 返回 num 的自然对数

  • log1p(num) 返回 num + 1 的自然对数

  • log2(num) 返回 num2 为底的对数

  • log10(num) 返回 num10 为底的对数

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 位整数形式相乘的结果