将==替换==,或!=!=!=可能会破坏Javascript中的任何内容?

时间:2014-02-20 20:21:51

标签: javascript

我随机运行JSHint来对付一些我没写过的现有Javascript。有几百个例子:

Expected '===' and instead saw '=='.
Expected '!==' and instead saw '!='.

我知道Javascript会受到类型错误的影响;没有人应该永远依赖。这就是为什么建议您从不使用==(因为它不是您想要的)而是使用===。这也是为什么你永远不应该使用!=(因为它不是你想要的)而是使用!==

所以,我没有写的代码。我不知道它做了什么。我不知道如何到达它以测试它。但由于使用==!=是不好的做法,而且我知道为什么这是不好的做法,我应该将它们转换为备用语法。

除非它会破坏事情。

绝对,保证,100%,现有代码突然无法正常工作吗?

或者它会破坏什么?

因为如果它可以破坏事物,那么它们就不会被触动;而且这个项目会像那样老死。

5 个答案:

答案 0 :(得分:4)

这取决于你的比较。

===表示'相等且类型相同',其中==在比较值之前根据需要进行隐式类型转换。

如果存在依赖于这些运算符的条件语句,它肯定会破坏。

答案 1 :(得分:4)

是的,很有可能它会破坏JavaScript中的某些内容,因为=====执行两种不同的操作,并且不一定是可以互换的。

答案 2 :(得分:2)

这取决于。如果你依赖JS中的松散比较。因此,如果some_var == 0some_var == "0"都应该变为真,那么它就会破坏。如果你想检查,如果它是字符串" 0"比你必须使用===

所以是的,它可能会破坏某些东西,但它也可能会修复一些错误的评估。

答案 3 :(得分:2)

是的,改变这些运营商可能会破坏事情。

然而,使用“严格”形式(===!==)通常被认为是最佳实践,因为它们的行为比“标准”非严格形式更可预测({{1 }和==)形式。

关键问题是!===运算符执行type conversion (see docs)!====不执行。{/ p>

请考虑以下示例:

!==

答案 4 :(得分:0)

如果两个值不相同,则===将返回false,其中==将返回true。因此,===可能会返回与==不同的结果,具体取决于您在代码中进行比较的内容。