1 .ES6 在Number
对象上,新提供了Number.isFinite()
和Number.isNaN()
两个方法
说明 :Number.isFinite()
用来检查一个数值是否为有限的(finite),即不是Infinity。
注意,如果参数类型不是数值,Number.isFinite
一律返回false
。
例 :Number.isFinite(15) //true
2. Number.isNaN()
用来检查一个值是否为NaN
。
3. 如果参数类型不是NaN
,Number.isNaN
一律返回false
。
它们与传统的全局方法isFinite()
和isNaN()
的区别在于,传统方法先调用Number()
将非数值的值转为数值,再进行判断,而这两个新方法只对数值有效,Number.isFinite()
对于非数值一律返回false
, Number.isNaN()
只有对于NaN
才返回true
,非NaN
一律返回false
。
4 .ES6 将全局方法parseInt()
和parseFloat()
,移植到Number
对象上面,行为完全保持不变。
这样做的目的,是逐步减少全局性方法,使得语言逐步模块化 。
Number.parseInt===parseInt //true
Number.parseFloat===parseFloat //true
5 .Number.isInteger()
用来判断一个数值是否为整数。
Number.isInteger(10) //true
Number.isInteger(10.0) //true
Number.isInteger(10.1) //false
注意 :如果参数不是数值,Number.isInteger
返回false
。
Number,isInteger('10') //false
特殊注意 0.1+0.2= 0.30000000000000004 != 0.3 (一个在2的53方之后的数用于计算得到的结果就不精确了)