【问题标题】:In JavaScript, why does isNaN(value) differ to value == NaN?在 JavaScript 中,为什么 isNaN(value) 与 value == NaN 不同?
【发布时间】:2014-02-21 19:51:48
【问题描述】:

正如问题中所说,我尝试了value == NaN,但它是错误的,然后记得我应该使用isNaN(value) 来检查这个。

为什么不一样?

【问题讨论】:

标签: javascript nan


【解决方案1】:

both NaN == NaN and NaN === NaN evaluate to false 来自MDN

NaN 是一个特殊值,您可以将其想象为例如InfinityInfinity 不等于另一个 Infinity,因为它有NO DEFINED VALUE

【讨论】:

  • 酷酷的对比,实实在在的一个
  • 您可能想明确指出,您指的是无穷大的数学概念,而不是 JavaScript 中的 Infinity 变量(如 JavaScript 中的 Infinity === Infinity)。
【解决方案2】:

我不能说比MDN 更好......

与 JavaScript 中所有其他可能的值不同,不可能依靠相等运算符(=====)来确定值是否为 NaN,因为 NaN == NaN 和 @987654326 @ 评估为 false。因此,isNaN 函数的必要性。

【讨论】:

    猜你喜欢
    • 2013-02-05
    • 2015-06-14
    • 2020-04-26
    • 2021-04-17
    • 2016-02-27
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多