跟Number一样,Math也有很多属性,而且不可再写,基本所有属性全部大写。
Math是一个内置对象, 它具有数学常数和函数的属性和方法。不是一个函数对象。很多API的入参会被强制转化为数字。
属性
Math.E : 欧拉常数,也是自然对数的底数, 约等于 2.718。
Math.LN2 : 2的自然对数, 约等于0.693。
Math.LN10 : 10的自然对数, 约等于 2.303。
Math.LOG2E: 以2为底E的对数, 约等于 1.443。
Math.LOG10E : 以10为底E的对数, 约等于 0.434。
Math.PI : 圆周率,一个圆的周长和直径之比,约等于 3.14159。
Math.SQRT1_2 : 1/2的平方根, 约等于 0.707。
Math.SQRT2 : 属性表示 2 的平方根,约为 1.414。
方法
Math.abs(x) : 函数返回指定数字 “x“ 的绝对值。
传入一个非数字形式的字符串或者 undefined/empty 变量,将返回 NaN。传入 null 将返回 0。
Math.abs('-1'); // 1
Math.abs(-2); // 2
Math.abs(null); // 0
Math.abs("string"); // NaN
Math.abs(); // NaN
Math.abs([]); // 0
var a=new Array(5);
Math.abs(a); // NaN
复制代码
Math.acos() : 返回一个数的反余弦值(单位为弧度)
acos 方法以 -1 到 1 的一个数为参数,返回一个 0 到 pi (弧度)的数值。如果传入的参数值超出了限定的范围,将返回 NaN。
Math.acosh : 返回一个数字的反双曲余弦值
返回指定参数的反双曲余弦值,如果指定的参数小于 1 则返回NaN。
Math.acosh(-1); // NaN
Math.acosh(0); // NaN
Math.acosh(0.5); // NaN
Math.acosh(1); // 0
Math.acosh(2); // 1.3169578969248166
复制代码
Math.asin : 方法返回一个数值的反正弦(单位为弧度)
Math.asin(x)
asin 方法接受 -1 到 1 之间的数值作为参数,返回一个介于 - π2 到 π2 弧度的数值。如果接受的参数值超出范围,则返回 NaN。
Math.asin(-2); // NaN
Math.asin(-1); // -1.5707963267948966 (-pi/2)
Math.asin(0); // 0
Math.asin(0.5); // 0.5235987755982989
Math.asin(1); // 1.570796326794897 (pi/2)
Math.asin(2); // NaN
复制代码
Math.asinh : 函数返回给定数字的反双曲正弦值
Math.asinh(x)
Math.atan : 函数返回一个数值的反正切(以弧度为单位)
Math.atan(x)
Math.atan(1); // 0.7853981633974483
Math.atan(0); // 0
复制代码
Math.atan2 : 返回其参数比值的反正切值。
Math.atan2(y, x)
Math.atanh : 函数返回一个数值反双曲正切值
Math.cbrt : 函数返回任意数字的立方根
Math.cbrt(NaN); // NaN
Math.cbrt(-1); // -1
Math.cbrt(-0); // -0
Math.cbrt(-Infinity); // -Infinity
Math.cbrt(0); // 0
Math.cbrt(1); // 1
Math.cbrt(Infinity); // Infinity
Math.cbrt(null); // 0
Math.cbrt(2); // 1.2599210498948734
复制代码
Math.ceil : 函数返回大于或等于一个给定数字的最小整数。
Math.ceil(.95); // 1
Math.ceil(4); // 4
Math.ceil(7.004); // 8
Math.ceil(-0.95); // -0
Math.ceil(-4); // -4
Math.ceil(-7.004); // -7
复制代码
Math.clz32() : 函数返回一个数字在转换成 32 无符号整形数字的二进制形式后, 开头的 0 的个数, 比如 1000000 转换成 32 位无符号整形数字的二进制形式后是 00000000000011110100001001000000, 开头的 0 的个数是 12 个, 则 Math.clz32(1000000) 返回 12.
-
如果 x 不是数字类型, 则它首先会被转换成数字类型, 然后再转成 32 位无符号整形数字.
-
如果转换后的 32 位无符号整形数字是 0, 则返回 32, 因为此时所有位上都是 0.
-
NaN, Infinity, -Infinity 这三个数字转成 32 位无符号整形数字后都是 0.
Math.clz32(1) // 31 Math.clz32(1000) // 22 Math.clz32() // 32 [NaN, Infinity, -Infinity, 0, -0, null, undefined, "foo", {}, []].filter(function (n) { return Math.clz32(n) !== 32 }) // [] Math.clz32(true) // 31 Math.clz32(3.5) // 30
Math.cos() : 函数返回一个数值的余弦值。
cos 方法返回一个 -1 到 1 之间的数值,表示角度(单位:弧度)的余弦值。
Math.cos(0); // 1
Math.cos(1); // 0.5403023058681398
Math.cos(Math.PI); // -1
Math.cos(2 * Math.PI); // 1
复制代码
Math.cosh : 函数返回数值的双曲余弦函数
Math.exp : 函数返回 ex,x 表示参数,e 是欧拉常数(Euler's constant),自然对数的底数。
Math.exp(x)
Math.exp(-1); // 0.36787944117144233
Math.exp(0); // 1
Math.exp(1); // 2.718281828459045
复制代码
Math.expm1 : 函数返回 Ex - 1, 其中 x 是该函数的参数, E 是自然对数的底数 2.718281828459045.
Math.expm1(x)
Math.floor : 返回小于或等于一个给定数字的最大整数。
Math.floor(x)
Math.floor( 45.95);
Math.floor(-45.05);
复制代码
Math.fround : 可以将任意的数字转换为离它最近的单精度浮点数形式的数字。
Math.fround(doubleFloat)
Math.hypot : 函数返回它的所有参数的平方和的平方根。
Math.imul : 返回两个参数的类C的32位整数乘法运算的运算结果.
Math.imul(a, b)
Math.imul(2, 4) // 8
Math.imul(-1, 8) // -8
Math.imul(-2, -2) // 4
Math.imul(0xffffffff, 5) //-5
Math.imul(0xfffffffe, 5) //-10
复制代码
Math.log : 函数返回一个数的自然对数
Math.log(x)
如果指定的 number 为负数,则返回值为 NaN。
Math.log10 : 函数返回一个数字以 10 为底的对数.
Math.log10
如果传入的参数小于 0, 则返回 NaN.
Math.log10(10) // 1
Math.log10(100) // 2
Math.log10("100")// 2
Math.log10(1) // 0
Math.log10(0) // -Infinity
Math.log10(-2) // NaN
Math.log10("foo")// NaN
复制代码
Math.log1p : 函数返回一个数字加1后的自然对数 (底为 E), 既log(x+1).
Math.log1p(x)
Math.log1p(Math.E-1) // 1
Math.log1p(0) // 0
Math.log1p("0") // 0
Math.log1p(-1) // -Infinity
Math.log1p(-2) // NaN
Math.log1p("foo") // NaN
复制代码
Math.log2 : 函数返回一个数字以 2 为底的对数.
Math.log2(x)
Math.max : 函数返回一组数中的最大值。
Math.max([value1[,value2, ...]])
返回给定的一组数字中的最大值。如果给定的参数中至少有一个参数无法被转换成数字,则会返回 NaN。
var arr = [1, 2, 3];
var max = Math.max(...arr);
复制代码
Math.min : 方法可返回指定的数字中带有最小值的数字。
Math.min(n1,n2,n3,...,nX)
参数中最小的值。如果没有参数,则返回 Infinity。如果有某个参数为 NaN,或是不能转换成数字的非数字值,则返回 NaN。
Math.pow : 函数返回基数(base)的指数(exponent)次幂,即 baseexponent
Math.random : 函数返回一个浮点, 伪随机数在范围[0,1)。它不能提供像密码一样安全的随机数字,不能使用它们来处理有关安全的事情。
使用Web Crypto API 来代替, 和更精确的window.crypto.getRandomValues() 方法
Math.round : 函数返回一个数字四舍五入后最接近的整数。
Math.round(4.5) // 5
Math.round(-4.5) // -4
Math.round(-4.51) // -5
Math.round(-4.1) // -4
复制代码
Math.sign : ie和safari不支持,函数返回一个数字的符号, 指示数字是正数,负数还是零。
Math.sign(x);
复制代码
此函数共有5种返回值, 分别是 1, -1, 0, -0, NaN. 代表的各是正数, 负数, 正零, 负零, NaN。
传入该函数的参数会被隐式转换成数字类型。
Math.sin : 函数返回一个数值的正弦值。
Math.sinh : ie等不支持,函数返回一个数字(单位为角度)的双曲正弦值.
Math.sqrt(x) : 函数返回一个数的平方根,如果参数 number 为负值,则 sqrt 返回 NaN。
Math.tan : 方法返回一个数值的正切值。
Math.tanh : 函数将会返回一个数的双曲正切函数值
Math.trunc : ie不支持,方法会将数字的小数部分去掉,只保留整数部分。
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
复制代码