zoukankan      html  css  js  c++  java
  • es6Math对象新增的方法

    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()结果有些不同。

  • 相关阅读:
    【转】VS2010中 C++创建DLL图解
    [转]error: 'retainCount' is unavailable: not available in automatic reference counting mode
    [转]关于NSAutoreleasePool' is unavailable: not available in automatic reference counting mode的解决方法
    【转】 Tomcat v7.0 Server at localhost was unable to start within 45
    【转】Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If
    【转】SVN管理多个项目版本库
    【转】eclipse安装SVN插件的两种方法
    【转】MYSQL启用日志,和查看日志
    【转】Repository has not been enabled to accept revision propchanges
    【转】SVN库的迁移
  • 原文地址:https://www.cnblogs.com/detanx/p/ES6Math.html
Copyright © 2011-2022 走看看