ES6在Number对象上提供的新方法
- 用来检查一个数值是否为有限的:Number.isFinite()。
注:非数值的一律返回false
let a = Number.isFinite(20);
console.log(a); //true
let b = Number.isFinite('20');
console.log(b); //false
let c = Number.isFinite(Infinity);
console.log(c); //false
let d = Number.isFinite(NaN);
console.log(d); //false
let f = Number.isFinite(null);
console.log(f); //false
- 用来检查一个值是否为NaN:Number.isNaN()。
注:值不为NaN的一律返回false
let a = Number.isNaN(NaN);
console.log(a); //true
let b = Number.isNaN('NaN');
console.log(b); //false
// 字符串/字符串、字符串/数值、数值/字符串、字符串/NaN和数值/NaN等等结果都是NaN
let c = Number.isNaN('true' / '0');
console.log(c); //true
let d = Number.isNaN('true' / 5);
console.log(d); //true
let e = Number.isNaN('true' /NaN);
console.log(e); //true
- Number.isFinite与isFinite的区别、Number.isNaN与isNaN的区别。
前者参数必须是数值,再进行判断,否则一律返回false。
let a = Number.isFinite(20);
console.log(a); //true
let b = Number.isFinite('20');
console.log(b); //false
let c = Number.isNaN(NaN);
console.log(c); //true
let d = Number.isNaN('NaN');
console.log(d); //false
后者参数若不是数值,都会先把参数转为数值,在进行判断。
let a = isFinite('12525'); //true
console.log(a);
let b = isNaN('NaN'); //true
console.log(b);
- 为了逐步减少全局性方法,使语言逐步模块化,因此ES6将全局的parseInt和parseFloat移植到Number对象上:Number.parseInt()和Number.parseFloat();行为保持不变。
let a = parseInt('15.55');
console.log(a); //15
let b = parseFloat('10.55a');
console.log(b); //10.55
let c = Number.parseInt('15.55');
console.log(c); //15
let d = Number.parseFloat('10.55a');
console.log(d); //10.55