将变量与自身进行比较

时间:2014-11-26 08:23:52

标签: javascript arrays include polyfills

我偶然发现了这个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;
}

1 个答案:

答案 0 :(得分:10)

是的,||的第二个操作数确实检查searchElementcurrentElement NaN是否为only value - JavaScript中的SameValueZero equivalence algorithm不是Strict Equality Comparison Algorithm 1}}对自己。 ===应该使用===,这与SameValue algorithm(由Object.is使用)或{{3}}(在{{3}中使用)不同})。