NaN
是唯一一个不和自身不相等的值,Array》prototype.indexOf 使用了严格相等,因此不能通过该方法在数组中查找 NaN:
NaN === NaN // false
[NaN].indexof(NaN); // false
如果想要检查一个值是否为 NaN,必须使用全局函数 isNaN():
isNaN(NaN); // true
isNaN(33); // false
但是,isNaN 对非数字不起作用,最好是把 isNaN 和类型检查组合起来:
function checkNaN(value) {
return typeof value === 'number' && isNaN(value);
}
或者,可以检查这个值是否和它本身不相等,因为 NaN 是唯一有这样特征的值:
function checkNaN(value) {
return vlaue !== value;
}
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/287276.html