ES6 数值的扩展

 ES6 规范了二进制和八进制的表示方法,代码如下:

      console.log(0o2000 === 1024)                  //true            使用0o表示八进制   0是数字0  o是小写字母o
      console.log(0b10000000000 === 1024)           //true            使用0b表示二进制   0是数字0  b是小写字母b

ES6 也将全局函数parseInt 和 parseFloat 移植到了 Number对象上面, Number对象也增加了isNaN 和 isInteger  方法 实例如下:

      //Number.isNaN   是判断参数的值是否为NaN
      Number.isNaN(NaN)                            //true
      Number.isNaN(1024)                           //false
      Number.isNaN("1024")                         //false 
      Number.isNaN(true)                            //false
      //Number.isInteger  判断参数的值是否为整数
      Number.isInteger(20);                         //true
      Number.isInteger(20.0);                       //true    因为在JS内部,整数和浮点数是同样的储存方法,所以20.0会被储存为20
      Number.isInteger(20.01);                      //false
      Number.isInteger("20");                       //false
      Number.isInteger(true);                       //false  

Number对象中也增加了一个极小常量EPSILON.。由于浮点数计算并不精确,会导致无法判断浮点数的运算结果是否等于某个值,代码如下:

  

(0.1+0.2)===0.3;                             //false

 

这个时候,如果两个值的的误差小于极小常量EPSILON,就认为这两个值相等

(0.1 + 0.2 - 0.3) < Number.EPSILON          //true
      
      //极小常量EPSILON可以任务JS能够表示出来的最小值,最小精度 如果一边得出来的结果小于EPSILON,就可以认证没有意义了,就不存在误差了

 

posted @ 2019-04-04 10:16  伴月阁  阅读(191)  评论(0编辑  收藏  举报