JSLint 预期为“===”,但看到了“==”

2024-02-16

最近,我在通过 JSLint 运行一些代码时遇到了这个错误。我认为这个错误的有趣之处在于它自动假设所有 == 都应该是 ===。

这真的有意义吗?我可以看到很多情况下您不想比较类型,而且我担心这实际上可能会导致问题。

“预期”这个词意味着每次都应该这样做……这对我来说没有意义。


IMO,盲目使用===,无需尝试理解 how 类型转换作品没有多大意义。

首要的fear关于等于运算符==取决于比较类型的比较规则可以使运算符不具有传递性,例如,如果:

A == B AND
B == C

并不能真正保证:

A == C

例如:

'0' == 0;   // true
 0  == '';  // true
'0' == '';  // false

严格等于运算符===当您比较相同类型的值时实际上并不需要,最常见的示例:

if (typeof foo == "function") {
  //..
}

我们比较一下结果typeof运算符,其中总是 a string,有一个string文字...

或者,例如,当您知道类型强制规则时,检查某些内容是否是null or undefined某物:

if (foo == null) {
  // foo is null or undefined
}

// Vs. the following non-sense version:

if (foo === null || typeof foo === "undefined") {
  // foo is null or undefined
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSLint 预期为“===”,但看到了“==” 的相关文章

随机推荐