本文实例讲述了ES6中Math对象新增的方法。分享给大家供大家参考,具体如下:
[b]Math.trunc()[/b]
Math.trunc方法用于去除一个数的小数部分,返回整数部分。
对于没有部署这个方法的环境,可以用下面的代码模拟。
Math.trunc = Math.trunc || function(x) {
return x < 0 ? Math.ceil(x) : Math.floor(x);
};
[b]Math.sign()[/b]
Math.sign方法用来判断一个数到底是正数、负数、还是零。
对于没有部署这个方法的环境,可以用下面的代码模拟。
Math.sign = Math.sign || function(x) {
x = +x; // convert to a number
if (x === 0 || isNaN(x)) {
return x;
}
return x > 0 ? 1 : -1;
};
[b]Math.cbrt()[/b]
Math.cbrt方法用于计算一个数的立方根。
对于没有部署这个方法的环境,可以用下面的代码模拟。
Math.cbrt = Math.cbrt || function(x) {
var y = Math.pow(Math.abs(x), 1/3);
return x < 0 ? -y : y;
};
[b]Math.clz32()[/b]
JavaScript的整数使用32位二进制形式表示,Math.clz32方法返回一个数的32位无符号整数形式有多少个前导0。
[b]Math.imul()[/b]
Math.imul方法返回两个数以32位带符号整数形式相乘的结果,返回的也是一个32位的带符号整数。
[b]Math.fround()[/b]
Math.fround方法返回一个数的单精度浮点数形式。
对于没有部署这个方法的环境,可以用下面的代码模拟。
Math.fround = Math.fround || function(x) {
return new Float32Array([x])[0];
};
[b]Math.hypot()[/b]
Math.hypot方法返回所有参数的平方和的平方根
[b]对数方法[/b]
ES6新增了4个对数相关方法。
[b](1) Math.expm1()[/b]
Math.expm1(x)返回ex - 1,即Math.exp(x) - 1。
对于没有部署这个方法的环境,可以用下面的代码模拟。
Math.expm1 = Math.expm1 || function(x) {
return Math.exp(x) - 1;
};
[b](2)Math.log1p()[/b]
Math.log1p(x)方法返回1 + x的自然对数,即Math.log(1 + x)。如果x小于-1,返回NaN。
对于没有部署这个方法的环境,可以用下面的代码模拟。
Math.log1p = Math.log1p || function(x) {
return Math.log(1 + x);
};
[b](3)Math.log10()[/b]
Math.log10(x)返回以10为底的x的对数。如果x小于0,则返回NaN。
对于没有部署这个方法的环境,可以用下面的代码模拟。
Math.log10 = Math.log10 || function(x) {
return Math.log(x) / Math.LN10;
};
[b](4)Math.log2()[/b]
Math.log2(x)返回以2为底的x的对数。如果x小于0,则返回NaN。
对于没有部署这个方法的环境,可以用下面的代码模拟。
Math.log2 = Math.log2 || function(x) {
return Math.log(x) / Math.LN2;
};
[b]三角函数方法[/b]
ES6新增了6个三角函数方法。
[code]Math.sinh(x)[/code] 返回x的双曲正弦(hyperbolic sine)
[code]Math.cosh(x)[/code] 返回x的双曲余弦(hyperbolic cosine)
[code]Math.tanh(x)[/code] 返回x的双曲正切(hyperbolic tangent)
[code]Math.asinh(x)[/code] 返回x的反双曲正弦(inverse hyperbolic sine)
[code]Math.acosh(x)[/code] 返回x的反双曲余弦(inverse hyperbolic cosine)
[code]Math.atanh(x)[/code] 返回x的反双曲正切(inverse hyperbolic tangent)
[b]Math.signbit()[/b]
Math.sign()用来判断一个值的正负,但是如果参数是-0,它会返回-0。
ES2016 新增了一个指数运算符(**)
[b]
指数运算符可以与等号结合,形成一个新的赋值运算符(**=)。[/b]
let a = 2;
a **= 2;
// 等同于 a = a * a;
let b = 3;
b **= 3;
// 等同于 b = b * b * b;
[b]注:[/b]
在vp8引擎中与Math.pow()结果有些不同。
更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《[url=http://www.1sucai.cn/Special/939.htm]ECMAScript6(ES6)入门教程[/url]》、《[url=http://www.1sucai.cn/Special/933.htm]JavaScript字符与字符串操作技巧总结[/url]》、《[url=http://www.1sucai.cn/Special/297.htm]JavaScript数据结构与算法技巧总结[/url]》、《[url=http://www.1sucai.cn/Special/439.htm]JavaScript错误与调试技巧总结[/url]》及《[url=http://www.1sucai.cn/Special/119.htm]JavaScript数学运算用法总结[/url]》
希望本文所述对大家JavaScript程序设计有所帮助。