es6学习笔记(五)

数值的扩展

新增方法

  • ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。
    0b111110111 === 503 // true
    0o767 === 503 // true
    
    //如果要将0b和0o前缀的字符串数值转为十进制,要使用Number方法
    Number('0b111')  // 7
    Number('0o10')  // 8
    
  • Number.isFinite()用来检查一个数值是否为有限的,对于非数值一律返回false,而不会将非数值转换成数值
    Number.isFinite('15'); //false
    
  • Number.isNaN()用来检查一个值是否为NaN,只有对于NaN才返回true,非NaN一律返回false
    Number.isNaN('15'); //false
    
  • Number.isInteger()用来判断一个数值是否为整数
    //JavaScript 内部,整数和浮点数采用的是同样的储存方法,所以 25 和 25.0 被视为同一个值
    Number.isInteger(25) // true
    Number.isInteger(25.0) // true
    
    //如果参数不是数值,Number.isInteger返回false
    Number.isInteger() // false
    Number.isInteger(null) // false
    Number.isInteger('15') // false
    Number.isInteger(true) // false
    
    //如果对数据精度的要求较高,不建议使用Number.isInteger()判断一个数值是否为整数
    //小数的精度达到了小数点后16个
    Number.isInteger(3.0000000000000002) // true
    
  • Number.EPSILON()它表示 1 与大于 1 的最小浮点数之间的差,可以用来设置“能够接受的误差范围”
    function withinErrorMargin (left, right) {
      return Math.abs(left - right) < Number.EPSILON * Math.pow(2, 2);
    }
    
    0.1 + 0.2 === 0.3 // false
    withinErrorMargin(0.1 + 0.2, 0.3) // true
    
    1.1 + 1.3 === 2.4 // false
    withinErrorMargin(1.1 + 1.3, 2.4) // true
    
  • Math 对象的扩展
    1. Math.trunc方法用于去除一个数的小数部分,返回整数部分。
      //对于非数值,Math.trunc内部使用Number方法将其先转为数值
      Math.trunc('123.456') // 123
      Math.trunc(true) //1
      Math.trunc(false) // 0
      Math.trunc(null) // 0
      
      //对于空值和无法截取整数的值,返回NaN
      Math.trunc(NaN);      // NaN
      Math.trunc('foo');    // NaN
      Math.trunc();         // NaN
      Math.trunc(undefined) // NaN
      
    2. Math.sign方法用来判断一个数到底是正数、负数、还是零。对于非数值,会先将其转换为数值,对于那些无法转为数值的值,会返回NaN
      它会返回五种值:
      a.参数为正数,返回+1;
      b.参数为负数,返回-1;
      c.参数为 0,返回0;
      d.参数为-0,返回-0;
      e.其他值,返回NaN。
    3. Math.cbrt方法用于计算一个数的立方根。对于非数值,Math.cbrt方法内部也是先使用Number方法将其转为数值

方法调整

  • ES6 将全局方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变
    1. Number.parseInt()
    2. Number.parseFloat()

猜你喜欢

转载自blog.csdn.net/weixin_43756060/article/details/84565557