是否将==替换为==,或!=有!==可能会破坏Javascript中的任何东西吗?

是否将==替换为==,或!=有!==可能会破坏Javascript中的任何东西吗?,javascript,Javascript,我对一些我没有编写的现有Javascript随机运行JSHint。有几百个例子: Expected '===' and instead saw '=='. Expected '!==' and instead saw '!='. 我知道Javascript存在类型共变问题;这是任何人都不应该依赖的。这就是为什么建议您不要使用==(因为这不是您想要的),而是使用==。这也是为什么你不应该使用=(因为它不是您想要的),而是使用== 所以,有些代码不是我写的。我不知道它是干什么的。我不知道如何到达它

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

Expected '===' and instead saw '=='.
Expected '!==' and instead saw '!='.
我知道Javascript存在类型共变问题;这是任何人都不应该依赖的。这就是为什么建议您不要使用
==
(因为这不是您想要的),而是使用
==
。这也是为什么你不应该使用
=(因为它不是您想要的),而是使用
==

所以,有些代码不是我写的。我不知道它是干什么的。我不知道如何到达它以测试它。但是因为使用
==
是不好的做法=,我知道这是一种不好的做法,我应该将它们转换为备用语法

除非它会破坏东西

是绝对的,保证的,100%,现有的代码不可能突然无法工作吗

或者它能破坏东西吗


因为如果它能打破东西,那么它们就不会被触碰;而这个项目也会像那样因年老而夭折。

这取决于你在比较什么

==
表示“相等且类型相同”,其中as
==
在比较值之前进行隐式类型转换(如有必要)


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

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

这取决于情况。如果您依赖于JS中的松散比较。因此,如果
some_var==0
some_var==“0”
都应该求值为true,那么它就会崩溃。如果要检查,如果是字符串“0”,则必须使用
=

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

是的,更改这些运算符可能会破坏某些东西。 然而,使用“严格”形式(
==
!=
)通常被认为是最佳实践,因为它们的行为比“标准”非严格形式(
=
!=
)更容易预测

关键问题是
==
=运算符执行操作,而
==
==不要

考虑以下示例:

'0'==0/=>true
“0”==0/=>false
'1' !=  1/=>错误
'1' !== 1/=>正确

如果两个值的类型不同,则
==
将返回false,而
==
将返回true。因此,
==
可能返回与
=
不同的结果,这取决于您在代码中比较的内容

当然,如果您依赖于隐式类型转换。e、 g.
'0'==0
是真的,
'0'==0
是假的。既然
=
和&
==
可以用相同的输入给出不同的结果,那么可以放心地说,这可能会破坏一些东西。如果你不得不问这个问题,你不应该开始盲目转换代码的项目。JavaScript不会“遭受”类型强制;它只是语言的一部分,它肯定有它的用途。别忘了
var
是一个关键字!