JavaScript 的 Math 是一个内置的全局对象,它拥有一些数学相关的常量属性和函数方法。Math 不是一个构造函数,因此我们不需要(也不能)使用 new Math() 来创建实例,所有的属性和方法都是静态的,直接通过 Math.xxx() 的形式调用。


属性 (Properties)

Math 对象提供了一些常用的数学常量。

属性描述
Math.E欧拉常数 e,自然对数的底数,约等于 2.718
Math.PI圆周率 π,约等于 3.14159
Math.SQRT22的平方根,约等于 1.414
Math.SQRT1_21/2的平方根,约等于 0.707
Math.LN22的自然对数,约等于 0.693
Math.LN1010的自然对数,约等于 2.303

方法 (Methods)

1. 取整方法

  • Math.round(x): 四舍五入到最接近的整数。

    Math.round(4.7); // 5
    Math.round(4.4); // 4
    Math.round(4.5); // 5
  • Math.ceil(x): 向上取整,返回大于或等于 x 的最小整数。

    Math.ceil(4.7); // 5
    Math.ceil(4.4); // 5
    Math.ceil(-4.2); // -4
  • Math.floor(x): 向下取整,返回小于或等于 x 的最大整数。

    Math.floor(4.7); // 4
    Math.floor(4.4); // 4
    Math.floor(-4.2); // -5
  • Math.trunc(x): 截断取整,直接去除小数部分,只保留整数部分。

    Math.trunc(4.7); // 4
    Math.trunc(4.2); // 4
    Math.trunc(-4.2); // -4

2. 最大值和最小值

  • Math.max(...values): 返回一组数中的最大值。

  • Math.min(...values): 返回一组数中的最小值。

    Math.max(1, 3, 2); // 3
    Math.min(1, 3, 2); // 1
    // 可以配合展开语法 `...` 使用数组
    const numbers = [1, 3, 2, 8, -1];
    Math.max(...numbers); // 8
    Math.min(...numbers); // -1

3. 数学计算

  • Math.pow(base, exponent): 返回 base 的 exponent 次幂,等同于 base ** exponent。

    Math.pow(2, 3); // 8 (2 * 2 * 2)
  • Math.sqrt(x): 返回 x 的正平方根。

    Math.sqrt(16); // 4
  • Math.abs(x): 返回 x 的绝对值。

    Math.abs(-5); // 5

4. 随机数

  • Math.random(): 返回一个 [0, 1) 区间内的伪随机浮点数(包含0,不包含1)。

    Math.random(); // 示例: 0.123456789

    生成指定范围的随机整数: 一个常见的需求是生成 [min, max] 区间内的随机整数。

    function getRandomInt(min, max) {
    min = Math.ceil(min);
    max = Math.floor(max);
    return Math.floor(Math.random() * (max - min + 1)) + min;
    }
    getRandomInt(1, 10); // 返回 1 到 10 之间的一个随机整数

5. 三角函数

Math 对象还提供了一整套三角函数,如 Math.sin(), Math.cos(), Math.tan() 等,参数为弧度制。