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

  • 相关阅读:
    docker 的官方PHP镜像 如何修改 php.ini 配置
    数据结构和算法
    接口的幂等性
    linux ftp服务器设置,只允许用户访问指定的文件夹,禁止访问其他文件夹
    rabitmq + php
    微信上传客服消息图片
    golang Printf 函数有超过 10 个转义字符
    golang bufio.NewScarme
    springboot(一)
    springboot加入第三方jar,使用mvn打包
  • 原文地址:https://www.cnblogs.com/detanx/p/ES6Math.html
Copyright © 2011-2022 走看看