NaN是一种数字类型,完整名称是Not-A-Number,代表不是一个数字。
isNaN()方法的作用是判断目标是否可转换成数字,返回值为布尔值,通常全局变量window上默认有此方法,能随时直接使用。执行流程:
- Number转换参数
- 结果与NaN相比较
window.isNaN('123'); // false
window.isNaN('hello world'); // true
// 或 isNaN('123'); // false
Number('hello world'); // NaN特殊的:
window.isNaN(undefined) // true;一般理解应该返回false,由于NaN是唯一一个与自身不相等的特殊值,如此可自定义严格判断方法:
function isReallyNaN (x){
return x!==x;
}
isReallyNaN(undefined); // false;此外,新版本ES6中新增了Number.isNaN()方法,可用于判断一个值是否严格等于NaN,不进行类型转换,更加简便。应用场景多是判断两个变量运算的结果。
Number.isNaN(undefined); // false
Number.isNaN(123); // false
Number.isNaN('123'); // false
Number.isNaN('hello world'); // false
Number.isNaN(0/0); // true