为什么parseInt(key) === NaN总是求值为false

Why parseInt(key) === NaN always evaluates to false

本文关键字:false NaN parseInt key 为什么      更新时间:2023-09-26

我正在做基于字典键的决策,我只有两种类型的键,数字和alpha,

var _dict = { 'a':'one', 'b':'two', '1':'three' };
$.each( _dict, function( key, value ){
  if( parseInt( key ) === NaN ) {
     // this statement always evalute to false
    } else {
    }
});

如果我输出console.log(parseInt('a')),它也会返回NaN

我已经从这个问题找到了解决方案javascript parseInt返回NaN为空字符串

这是因为NaN被定义为不等于任何东西(包括它自己)。检查:

>> NaN === NaN
False

你应该使用isNaN()函数来代替:

>> isNaN(NaN)
true
>> isNaN(0/0)
true
>> isNaN(parseInt('a'))
true