【问题标题】:What does "value != value" mean in JS?JS中的“value != value”是什么意思?
【发布时间】:2022-11-25 01:48:39
【问题描述】:

我正在阅读source code of core-js,我看到了以下内容:

if (value != value) return true;

它到底是什么意思? value 什么时候不等于它自己?

【问题讨论】:

  • 它看起来像一张旧的NaN支票。请参阅上面的副本。
  • @NinaScholz 这个问题并不是那个问题的真正重复。问题完全不同,答案恰好(有些)相似。 CertainPerformance 的回答表明这可能不是 NaN 检查。
  • 引用行上方的注释明确表示这是 NaN 检查。
  • @MichaelM.,对于另一种情况,这将是重复的问题:stackoverflow.com/q/48270127/1447675
  • @MichaelM。另外,鉴于代码行定义value是 value = O[index++]; value 几乎不可能成为 getter 属性。总是如此保证成为一个普通的价值。 value !== value 上方的评论也写着“NaN 检查”。当然,如果您有证据表明它没有检查NaN,请随时分享。

标签: javascript


【解决方案1】:

可能是:

  • value 是 NaN

console.log(NaN != NaN);
  • value 实际上是全局对象的 getter,每次返回的内容都不一样:

let i = 0;
Object.defineProperty(window, 'value', { get: () => i++ });

console.log(value != value);

【讨论】:

    猜你喜欢
    • 2021-08-05
    • 1970-01-01
    • 1970-01-01
    • 2013-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多