Number.isFinite()、Number.isNaN()
ES6在Number对象上提供了Number.isFinite()、Number.isNaN()两个方法。Number.isFinite()用来检查一个数值是否为有限,Number.isNaN()用来检查一个值是否为NaN。这两个新方法与传统的全局方法isFinite()、isNaN()区别在于,传统方法先调用Number()将非数值转为数值,再进行判断,而新方法只对数值有效,对于非数值一律返回false。Number.isNaN()只有对于NaN()才返回true,非NaN一律返回false。
Number.isInteger()
Number.isInteger()用来判断一个值是否为整数,返回布尔值。只对数值有效,其他类型的值返回false。
Math对象的扩展
Math.trunc()和Math.sign()
Math.trunc()方法用于去除一个数的小数部分,返回整数部分。
Math.trunc(4.1) // 4
Math.trunc(-4.1) // -4
对于非数值Math.trunc()内部使用Number方法将其先转为数值,对于空值和无法截取整数的值,返回NaN。
Math.sign()方法用来判断一个数到底是整数、负数还是零。对于非数值,会先将其转换为数值。
其返回值有5种情况。
- 参数为正数,返回+1
- 参数为负数,返回-1
- 参数为0,返回0
- 参数为-0,返回-0
- 其他值,返回NaN‘