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,就可以认证没有意义了,就不存在误差了