Number.isFinite()、Number.isNaN()
Number.isFinite()检查一个数值是否为有限的,即不是Infinity
console.log(Number.isFinite(10)); // true
console.log(Number.isFinite(0.1)); // true
console.log(Number.isFinite(NaN)); // false
console.log(Number.isFinite(Infinity)); // false
console.log(Number.isFinite('Hello')); // false
console.log(Number.isFinite(true)); // false
如果参数不是数值,Number.isFinite()一律返回false
Number.isNaN()用来检查一个值是不是NaN
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(11)); // false
console.log(Number.isNaN(true)); // false
console.log(Number.isNaN('11')); // false
console.log(Number.isNaN(1 / NaN)); // true
console.log(Number.isNaN('true' / 1)); // true
与传统的全局方法isFinite()和isNaN()的区别
console.log(isFinite(100)); // true
console.log(isFinite('100')); // true
console.log(Number.isFinite(100)); // true
console.log(Number.isFinite('100')); // false
console.log(isNaN(NaN)); // true
console.log(isNaN('NaN')); // true
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN('NaN')); // false
传统方法,先调用Number()将非数值转为数值,再进行判断,而ES6中的新方法只对数值有效。Number.isFinite()对于非数值一律返回false,Number.isNaN()只有对于NaN才返回true,非NaN一律返回false
Number.parseInt(),Number.parseFloat()
ES6将全局方法parseInt()和parseFloat()移植到Number对象上面,行为完全不变
console.log(parseInt('10.33')); // 10
console.log(Number.parseInt('10.33')); // 10
console.log(parseFloat('10.53.1#')); // 10.53
console.log(Number.parseFloat('10.53.1#')); // 10.53
Number.isInteger()
Number.isInteger()用来判断一个数值是否为整数
console.log(Number.isInteger(10)); // true
console.log(Number.isInteger(10.1)); // false
console.log(Number.isInteger(10.0)); // true
参数只要不是数值,一律返回false
console.log(Number.isInteger(true)); // false
console.log(Number.isInteger(null)); // false
console.log(Number.isInteger('11')); // false