• Math 是一个内置对象, 它具有数学常数和函数的属性和方法。不是一个函数对象。
  • Math 适用于 Number 类型。它不支持 BigInt。
  • 与其他全局对象不同的是,​​Math​​​ 不是一个构造器。​​Math​​ 的所有属性与方法都是静态的。

Math的相关属性

  • Math.E 属性表示自然对数的底数(或称为基数),e,约等于 2.718。(2.718281828459045)
  • Math.LN10属性表示 10 的自然对数,约为 2.302:
  • Math.LN2属性表示 2 的自然对数,约为 0.693:
  • Math.LOG10E属性表示以 10 为底数,e 的对数,约为 0.434:
  • Math.LOG2E属性表示以 2 为底数,e 的对数,约为 1.442:
  • Math.PI表示一个圆的周长与直径的比例,约为 3.14159:
  • Math.SQRT1_2属性表示 1/2 的平方根,约为 0.707:
  • Math.SQRT2属性表示 2 的平方根,约为 1.414:

Math的相关方法

Math.abs(x)​ 函数返回指定数字 “x“ 的绝对值。

传入一个非数字形式的字符串或者 undefined/empty 变量,将返回 ​​NaN​​。传入 null 将返回 0。

Math.abs('-1');     // 1
Math.abs(-2); // 2
Math.abs(null); // 0
Math.abs("123string"); // NaN
Math.abs(); // NaN
Math.abs(undefined) // NaN

Math.ceil()

Math.abs('-1.1');     // 1
Math.abs(2.1); // 3
Math.abs(null); // 0
Math.abs("string"); // NaN
Math.abs(); // NaN

Math.floor()​ 返回小于或等于一个给定数字的最大整数。

Math.floor(45.95) // 45 
Math.floor(4) // 4
Math.floor(-45.05)// -46

 ​Math.max()​ 函数返回一组数中的最大值。

返回给定的一组数字中的最大值。如果给定的参数中至少有一个参数无法被转换成数字,则会返回 NaN。如果没有参数,则结果为 - Infinity。

Math.max(10, 20,30); // 30
Math.max.call(null,10, 20,30); // 30
Math.max.apply(null,[10, 20,30]); // 30
Math.max(10, 20, 30 , 'test'); //NaN
Math.max() // -Infinity

Math.min()​ 返回零个或更多个数值的最小值。

Math.min(10, 20,30); // 10
Math.min.call(null,10, 20,30); // 10
Math.min.apply(null,[10, 20,30]); // 10
Math.min(10, 20, 30 , 'test'); // NaN
Math.min() // Infinity

Math.pow()​​ 函数返回基数(​​base​​​)的指数(​​exponent​​​)次幂​​,即​​​ ​​baseexponent​​。

Math.pow(2, 3) // 2的三次方 = 8

Math.random()​ 函数返回一个浮点,  伪随机数在范围[0,1),也就是说,从0(包括0)往上,但是不包括1(排除1)

Math.random()

Math.round()​ 函数返回一个数字四舍五入后最接近的整数。

Math.round(-21.49) // -21

Math.sign()

此函数共有5种返回值, 分别是 1, -1, 0, -0, NaN. 代表的各是正数, 负数, 正零, 负零, NaN。
传入该函数的参数会被隐式转换成数字类型。

Math.sign(3);     //  1
Math.sign(-3); // -1
Math.sign("-3"); // -1
Math.sign(0); // 0
Math.sign(-0); // -0
Math.sign(NaN); // NaN
Math.sign("foo"); // NaN
Math.sign(); // NaN

Math.trunc()​ 方法会将数字的小数部分去掉,只保留整数部分。传入该方法的参数会被隐式转换成数字类型。

Math.trunc(13.37)    // 13
Math.trunc(42.84) // 42
Math.trunc(0.123) // 0
Math.trunc(-0.123) // -0
Math.trunc("-1.123") // -1
Math.trunc(NaN) // NaN
Math.trunc("foo") // NaN
Math.trunc() // NaN

Math.sqrt()​ 函数返回一个数的平方根

Math.sqrt(9); // 3
Math.sqrt(2); // 1.414213562373095
Math.sqrt(1); // 1
Math.sqrt(0); // 0
Math.sqrt(-1); // NaN