属性 LN10 (10的自然对数) PI (3.1415926...) SQRT1_2 (1/2的平方根) Math.MAX_SAFE_INTEGER Math.MIN_SAFE_INTEGER 方法 abs(x) 返回x的绝对值 acos(x) 返回x的arc cosine值 asin(x) 返回x的arc sin值 atan(x) 返回x的arc tangent值 ceil(x) 返回大于等于x的最小整数 cos(x) 返回x的cosine值 exp(x) 返回e的x次方 floor(x) 返回小于等于x的最大整数 log(x) 返回x的 max(x,y) 返回x,y中的大值 min(x,y) 返回x,y中的小值 pow(x,y) 返回x的y次方 round(x) 舍入到最近整数,(小于或等于0.5小数舍去) sin(x) 返回x的sin值 sqrt(x) 返回x的平方根 tan(x) 返回x的tangent值 新增方法 Math.trunc() 去除一个数的小数部分,相当于Math.ceil()和Math.floor()的结合 Math.sign() 判断一个数是正数,负数,0还是不是数,分别返回1,-1,0,-0,NaN Math.cbrt() 计算一个数的立方根,非数值先转换,不能转换的返回NaN Math.clz32() 返回一个数的32位无符号整数形式有多少个前导0,注意传入的一般是十进制,我们要转化成二进制来对比,当然也可以传入八进制,二进制等类型的数 而且左移运算符与之相关,但凡左移,表示的就是二进制了 对于小数,只考虑整数部分,这一点很好理解 对于空值或其他类型的值,先将其转化为数值,再计算,比如那些转换后不是数值的,布尔值就是0,所以有32个0。布尔值为‘真’的,就是1,所以有31个0. Math.imul() 返回两个数以32位带符号整数相乘的结果,返回的也是32位的带符号整数 意义:可以返回正确的低位数值 Math.fround() 返回一个数的单精度浮点数形式,对于整数,他返回的并没有什么不同,而对于那些无法用64个二进制位精确表示的小数,他会返回最接近这个小数的单精度浮点数 Math.hypot() 返回所以参数的平方和的平方根 对数方法 Math.expm1(x) 返回e^x - 1,即 Math.exp(x) - 1 Math.log1p(x) 返回\ln(1+x) ,即Math.log(1+x),如果x<-1,则返回NaN Math.log10(x) 返回以10为底的x的对数,如果x<0,则返回NaN Math.log2(x) 返回以2为底的x的对数,如果x<0,则返回NaN 三角函数方法 Math.sinh(x) 返回x的双曲正弦 Math.cosh(x) 返回x的双曲余弦 Math.tanh(x) 返回x的双曲正切 Math.asinh(x) 反回x的反双曲正弦 Math.acosh(x) 返回x的反双曲余弦 Math.atanh(x) 返回x的反双曲正切 Math.pow(a,b):表示a的b次方,其中JavaScript能准确表示的整数范围是-2^{53} —— 2^{53},不包括端点处 javascript引入Math.MAX_SAFE_INTEGER和Math.MIN_SAFE_INTEGER来表示这两个范围的上下限 Math对象新增的17个与数学相关的方法,这些都是静态方法,只能在Math对象上调用 一些例子 console.log(Math.sign(2)); // 1 console.log(Math.sign(-2)); // -1 console.log(Math.sign(0)); // 0 console.log(Math.sign(-0)); // -0 console.log(Math.sign('h'));// NaN console.log(Math.cbrt(-1)); console.log(Math.cbrt(8)); console.log(Math.clz32(40)); // 这里40的二进制形式是0b101000,占了6位,所以是26 console.log(Math.clz32(0b101000)); // 这里就传入了一个二进制数 console.log(Math.clz32(1 << 2)); // 29,但凡左移,表示的就是二进制了 console.log(Math.imul(2,4)); // 8 console.log(Math.imul(-1,7)); // 7 console.log(Math.fround(1.7)); // 1.7000000476837158 console.log(Math.fround(2)); // 2 console.log(Math.exp(1)); //2.7182818284590455 console.log(Math.expm1(1)); //1.718281828459045