我只在Firefox的JavaScript控制台中尝试过,但以下语句都没有返回true:

parseFloat('geoff') == NaN;

parseFloat('geoff') == Number.NaN;

当前回答

两种都试试看

if(isNaN(parseFloat('geoff'))  && typeof(parseFloat('geoff')) === "number");
//true

其他回答

NaN === NaN;        // false
Number.NaN === NaN; // false
isNaN(NaN);         // true
isNaN(Number.NaN);  // true

相等运算符(==和===)不能用于测试NaN的值。

全局NaN属性是一个表示Not-A-Numbe的值

最好的方法是使用'isNaN()',这是一个内置函数来检查NaN。所有浏览器都支持这种方式。

函数isNotANumber(n) { If (typeof n !== 'number') { 返回true; } == n; }

发现这很有用

    // Long-hand const isFalsey = (value) => {   if (
        value === null ||
        value === undefined ||
        value === 0 ||
        value === false ||
        value === NaN ||
        value === ""   ) {
        return true;   }   return false; };
 // Short-hand const 
      isFalsey = (value) => !value;

找到了另一种方法,只是为了好玩。

function IsActuallyNaN(obj) {
  return [obj].includes(NaN);  
}

我使用下划线的isNaN函数,因为在JavaScript中:

isNaN(undefined) 
-> true

至少,要意识到这一点。