【问题标题】:Comparing a variable with itself比较变量与自身
【发布时间】:2015-01-24 11:50:21
【问题描述】:

我偶然发现了这个 Array.prototype.includes 的 polyfill。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes。 在第 21,22 行将变量与自身进行比较是否有原因?

if (searchElement === currentElement ||
         (searchElement !== searchElement && currentElement !== currentElement)) {
  return true;
}

【问题讨论】:

    标签: javascript arrays include polyfills


    【解决方案1】:

    是的,|| 的第二个操作数确实会检查 searchElementcurrentElement 是否都是 NaN - JavaScript 中的 only value 不是 === 本身。 includes 应该使用SameValueZero equivalence algorithm,它不同于Strict Equality Comparison Algorithm(由=== 使用)或SameValue algorithm(在Object.is 中使用)。

    【讨论】:

      猜你喜欢
      • 2021-12-17
      • 2021-06-09
      • 1970-01-01
      • 2017-07-09
      • 2013-01-05
      • 1970-01-01
      • 2012-10-25
      相关资源
      最近更新 更多