比较 JavaScript 中的 NaN

man*_*nas 2 javascript

在 Javascript 中,如果我们将字符串与数字相乘,我们会得到NaN:

 console.log("manas" * 5); // result is NaN    
Run Code Online (Sandbox Code Playgroud)

那么为什么下面的代码会产生false而不是true?

console.log("manas" * 5 == NaN)  // results false
Run Code Online (Sandbox Code Playgroud)

Alv*_*ona 5

请改用该isNaN函数。

console.log(isNaN("manas" * 5));
Run Code Online (Sandbox Code Playgroud)

http://www.w3schools.com/jsref/jsref_isnan.asp

NaN,不是数字,是一种特殊类型值,用于表示不可表示的值。对于 JavaScript,NaN 可能会引起一些混乱,从它的 typeof 到比较的处理方式。

有几种运算可能会导致 NaN 结果。由于表示 NaN 的方法有很多种,因此一个 NaN 不等于另一个 NaN 是有道理的。