es6Math对象新增的方法

Math.trunc()

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

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

1
2
3
Math.trunc = Math.trunc ||  function (x) {
   return  x < 0 ? Math.ceil(x) : Math.floor(x);
};

Math.sign()

Math.sign方法用来判断一个数到底是正数、负数、还是零。

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

1
2
3
4
5
6
7
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方法用于计算一个数的立方根。

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

1
2
3
4
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方法返回一个数的单精度浮点数形式。

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

1
2
3
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

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

1
2
3
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

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

1
2
3
Math.log1p = Math.log1p ||  function (x) {
   return  Math.log(1 + x);
};

  

(3)Math.log10()

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

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

1
2
3
Math.log10 = Math.log10 ||  function (x) {
   return  Math.log(x) / Math.LN10;
};

  

(4)Math.log2()

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

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

1
2
3
Math.log2 = Math.log2 ||  function (x) {
   return  Math.log(x) / Math.LN2;
};

  

三角函数方法

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

1
2
3
4
5
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 新增了一个指数运算符(**

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

1
2
3
4
5
6
7
let  a = 2;
a **= 2;
// 等同于 a = a * a;
 
let  b = 3;
b **= 3;
// 等同于 b = b * b * b;

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值