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