一、二进制和八进制表示法
ES6 提供了二进制和八进制数值的新的写法,分别用前缀0b(或0B)和0o(或0O)表示。
0b111110111 === 503 // true
0o767 === 503 // true
如果要将0b和0o前缀的字符串数值转为十进制,要使用Number方法。
Number('0b111') // 7
Number('0o10') // 8
二、Number.isFinite()、Number.isNaN()
1、Number.isFinite():用来检查一个数值是否为有限的。如果参数类型不是数值,一律返回false。
Number.isFinite(15); // true
Number.isFinite(0.8); // true
Number.isFinite(NaN); // false
2、Number.isNaN():用来检查一个值是否为NaN。如果参数类型不是NaN,Number.isNaN一律返回false。
Number.isNaN(NaN) // true
Number.isNaN(9/NaN) // true
Number.isNaN(15) // false
Number.isNaN('15') // false
Number.isNaN(true) // false
三、Number.isInteger()
用来判断一个数值是否为整数。如果参数不是数值,Number.isInteger返回false。
Number.isInteger(25) // true
Number.isInteger(25.1) // false
Number.isInteger('15') // false
JavaScript 内部,整数和浮点数采用的是同样的储存方法,所以 25 和 25.0 被视为同一个值。
Number.isInteger(25) // true
Number.isInteger(25.0) // true
说明:如果对数据精度的要求较高,不建议使用它来判断一个数值是否为整数。
四、Number.parseInt()、 Number.parseFloat()
ES6 将全局方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变。这样做的目的,是逐步减少全局性方法,使得语言逐步模块化。
// ES5的写法
parseInt('12.34') // 12
parseFloat('123.45#') // 123.45
// ES6的写法
Number.parseInt('12.34') // 12
Number.parseFloat('123.45#') // 123.45
五、Number.EPSILON
ES6 在Number对象上面,新增一个极小的常量Number.EPSILON。实际上是 JavaScript 能够表示的最小精度。误差如果小于这个值,就可以认为已经没有意义了,即不存在误差了。