欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ES6中Math对象新增的方法实例详解

程序员文章站 2023-11-06 17:02:22
本文实例讲述了es6中math对象新增的方法。分享给大家供大家参考,具体如下: math.trunc() math.trunc方法用于去除一个数的小数部分,返回整数部分...

本文实例讲述了es6中math对象新增的方法。分享给大家供大家参考,具体如下:

math.trunc()

math.trunc方法用于去除一个数的小数部分,返回整数部分。

对于没有部署这个方法的环境,可以用下面的代码模拟。

math.trunc = math.trunc || function(x) {
 return x < 0 ? math.ceil(x) : math.floor(x);
};

math.sign()

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;
};

math.cbrt()

math.cbrt方法用于计算一个数的立方根。

对于没有部署这个方法的环境,可以用下面的代码模拟。

math.cbrt = math.cbrt || function(x) {
 var y = math.pow(math.abs(x), 1/3);
 return x < 0 ? -y : y;
};

math.clz32()

javascript的整数使用32位二进制形式表示,math.clz32方法返回一个数的32位无符号整数形式有多少个前导0。

math.imul()

math.imul方法返回两个数以32位带符号整数形式相乘的结果,返回的也是一个32位的带符号整数。

math.fround()

math.fround方法返回一个数的单精度浮点数形式。

对于没有部署这个方法的环境,可以用下面的代码模拟。

math.fround = math.fround || function(x) {
 return new float32array([x])[0];
};

math.hypot()

math.hypot方法返回所有参数的平方和的平方根

对数方法

es6新增了4个对数相关方法。

(1) math.expm1()

math.expm1(x)返回ex - 1,即math.exp(x) - 1。

对于没有部署这个方法的环境,可以用下面的代码模拟。

math.expm1 = math.expm1 || function(x) {
 return math.exp(x) - 1;
};

(2)math.log1p()

math.log1p(x)方法返回1 + x的自然对数,即math.log(1 + x)。如果x小于-1,返回nan。

对于没有部署这个方法的环境,可以用下面的代码模拟。

math.log1p = math.log1p || function(x) {
 return math.log(1 + x);
};

(3)math.log10()

math.log10(x)返回以10为底的x的对数。如果x小于0,则返回nan。

对于没有部署这个方法的环境,可以用下面的代码模拟。

math.log10 = math.log10 || function(x) {
 return math.log(x) / math.ln10;
};

(4)math.log2()

math.log2(x)返回以2为底的x的对数。如果x小于0,则返回nan。

对于没有部署这个方法的环境,可以用下面的代码模拟。

math.log2 = math.log2 || function(x) {
 return math.log(x) / math.ln2;
};

三角函数方法

es6新增了6个三角函数方法。

math.sinh(x) 返回x的双曲正弦(hyperbolic sine)
math.cosh(x) 返回x的双曲余弦(hyperbolic cosine)
math.tanh(x) 返回x的双曲正切(hyperbolic tangent)
math.asinh(x) 返回x的反双曲正弦(inverse hyperbolic sine)
math.acosh(x) 返回x的反双曲余弦(inverse hyperbolic cosine)
math.atanh(x) 返回x的反双曲正切(inverse hyperbolic tangent)

math.signbit()

math.sign()用来判断一个值的正负,但是如果参数是-0,它会返回-0。

es2016 新增了一个指数运算符(**)

指数运算符可以与等号结合,形成一个新的赋值运算符(**=)。

let a = 2;
a **= 2;
// 等同于 a = a * a;
let b = 3;
b **= 3;
// 等同于 b = b * b * b;

注:在vp8引擎中与math.pow()结果有些不同。

更多关于javascript相关内容感兴趣的读者可查看本站专题:《ecmascript6(es6)入门教程》、《javascript字符与字符串操作技巧总结》、《javascript数据结构与算法技巧总结》、《javascript错误与调试技巧总结》及《javascript数学运算用法总结

希望本文所述对大家javascript程序设计有所帮助。