Number - Number.isFinite() && Number.isNaN()
Number.isFinite()
用来检查一个数值是否为有限的(finite),是否是一个有穷数(finite number),即不是Infinity
如果参数类型不是数值,Number.isFinite一律返回false
Number.isFinite(NaN); // false
Number.isFinite(Infinity); // false
Number.isFinite(-Infinity); // false
Number.isFinite('foo'); // false
Number.isFinite('15'); // false
Number.isFinite(true); // false
Number.isFinite(0); // true Number.isFinite(2e64); // true Number.isFinite(0.8); // true
Number.isNaN()
用来检查一个值是否为NaN。
如果参数类型不是NaN,Number.isNaN一律返回false。
isNaN(true); // false
isNaN(null); // false
isNaN(37); // false
// strings
isNaN("37"); // false: 可以被转换成数值37
isNaN("37.37"); // false: 可以被转换成数值37.37
isNaN(""); // false: 空字符串被转换成0
isNaN(" "); // false: 包含空格的字符串被转换成0
// dates
isNaN(new Date()); // false
isNaN(NaN); // true
isNaN(undefined); // true
isNaN({}); // true
isNaN("37,5"); // true
isNaN(new Date().toString()); // true
isNaN("blabla") // true: "blabla"不能转换成数值 // 转换成数值失败, 返回NaN
Number.isNaN(9 / NaN) // true
Number.isNaN('true' / 0) // true
Number.isNaN('true' / 'true') // true
浙公网安备 33010602011771号