数值的扩展
二进制和八进制的表示法
- ES6提供了八进制和二进制数值的新鞋发,分别用前缀0b和0o表示。
- ES6进一步明确,八进制不在允许使用前缀0表示,要使用0o表示。
要将八进制和二进制转化为十进制的话,请使用Number方法。
Number.isFinite,Number.isNaN()
####Number.isFinite
此方法是用来检测这个值是否非无穷12Number.isFinite(15)//trueNumber.isFinite(Infinity)//falseNumber.isNaN用来检测这个值是否为NaN
123Number.isNaN(NaN)//trueNumber.isNaN(13)//falseNumber.isNaN(9/NaN)//true这两个新方法与传统的全局方法isFinite()和isNaN()区别在于,传统方法需要先调用Nimber()将非数值转化为数值,在进行判断,而新方法只对数值有效,对于非数值一律返回false。
123456789isFinite(25)//trueisFinite('25')//trueNumber.isFinite(25)//trueNumber.isFinite('25')//falseisNaN(NaN)//trueisNaN('NaN')//trueNumber.isNaN(NaN)//trueNumber.isNaN('NaN')//false
Number.isInterger
这个方法用来判断一个值是否为整数。需要注意,在Javascript内部,整数和浮点数使用同样的储存方式,所以3和3.0是同一个值。
Number.EPSILON
这个方法是为Number对象上添加了一个极小的常量。引入一个极小的常量是用来浮点数计算中设置一个误差范围,我们知道浮点数计算是不正确的。
因此,Number.EPSILON的实质是一个可以接受的误差范围。
安全整数和Number.isSafeInteger()
javaScript能够准确的表示的整数范围在-2^{53}到2^{53}之间(不含两个端点),超过这个范围就无法精确表示。
ES6引入了Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER两个常量,用来表示这个范围的上下限。
Number.isSafeInteger()则用来判断一个整数是否落在这个范围内
注意,验证运算结果是否落在安全整数的范围内,不要只验证运算结果,而要同时验证参与运算的每一个值。