1、Number.isNan 和 Number.isFinite
Number.isNaN()
用来检查一个值是否为NaN
Number.isNaN(NaN) // trueNumber.isNaN(15) // falseNumber.isNaN('15') // falseNumber.isNaN(true) // false
Number.isFinite()
用来检查一个数值是否为有限的(finite)
Number.isFinite(15); // trueNumber.isFinite(0.8); // trueNumber.isFinite(NaN); // falseNumber.isFinite(Infinity); // falseNumber.isFinite(-Infinity); // falseNumber.isFinite('foo'); // falseNumber.isFinite('15'); // falseNumber.isFinite(true); // false
ES5的2个方法,isFinite和isNaN,原理是先调用Number()
将非数值的值转为数值,再进行判断。
ES6的2个方法为只对数值有效,Number.isFinite()
对于非数值一律返回false
, Number.isNaN()
只有对于NaN
才返回true
,非NaN
一律返回false
。
总之:ES6更加严谨了。
2、Number.parseInt(), Number.parseFloat()
ES6 将全局方法parseInt()
和parseFloat()
,移植到Number
对象上面,行为完全保持不变。
3、Number.isInteger
Number.isInteger()
用来判断一个值是否为整数。需要注意的是,在 JavaScript 内部,整数和浮点数是同样的储存方法,所以 3 和 3.0 被视为同一个值。
4、Math.trunc
Math.trunc
方法用于去除一个数的小数部分,返回整数部分。
Math.trunc(4.1) // 4Math.trunc(4.9) // 4Math.trunc(-4.1) // -4Math.trunc(-4.9) // -4Math.trunc(-0.1234) // -0
对于参数为非数字,trunc方**使用内部Number方法先将其转为数字再截取整数部分。
Math.trunc('3.2') //3
原标题:ES6 数值扩展
关键词: