数值的扩展
- Number.isFinite(),Number.isNaN()
Number.isFinite()用来检查一个数值是否为有限的(finite),如果参数类型不是数值,Number.isFinite一律返回false
Number.isNaN()用来检查一个值是否为NaN,如果参数类型不是NaN,Number.isNaN一律返回false
他们与传统的全局方法isFinite()和isNaN()的区别在于,传统方法先调用Number()将非数值的值转为数值,再进行判断,而这两个新方法只对数值有效,Number.isFinite()对于非数值一律返回false,Number.isNaN()只有对于NaN才返回true,非NaN一律返回false - Number.parseInt(),Number.parseFloat()
ES6将全局方法parseInt()和parseFloat()移植到Number对象上,行为完全保持不变,这样做的目的是逐渐减少全局性方法,使得语言逐步模块化 - Number.isInteger()
Number.isInteger()用来判断一个数值是否为整数,如果参数不是数值则返回false
Math对象的扩展
- Math.trunc()
Math.trunc()方法用于去除一个数的小数部分,返回整数部分。对于非数值,Math.trunc内部使用Number方法现将其先转为数值。对于空值和无法截取整数的值,返回NaN - Math.sign()
Math.sign()方法用来判断一个数到底是正数、负数还是零。对于非数值,会先将其转为数值。
它会返回五种值。
- 参数为整数,返回+1;
- 参数为负数,返回-1;
- 参数为0,返回0;
- 参数为-0,返回-0;
- 其他值,返回NaN
- Math.cbrt()
Math.cbrt方法用于计算一个数的立方根