Javascript jsHint错误提示我应该使用===&引用;

Javascript jsHint错误提示我应该使用===&引用;,javascript,Javascript,我的代码给了我一个jsHint错误。我正在尝试这样做: if (data.result == 't' || task == 'show') { 但是它告诉我应该用“==”替换“==”有人能告诉我为什么它会给出这个消息吗?==是严格的相等运算符 =是普通的相等运算符,=将其操作数转换为相同的类型(如果它们不是相同的类型) 因此,有一种危险,像“”==0这样的东西将为您提供true,尽管它们的类型不同 由于涉及到隐式转换,您可能不知道,因为它是自动发生的,因此存在一些难以跟踪的错误或bug的危险和

我的代码给了我一个jsHint错误。我正在尝试这样做:

if (data.result == 't' || task == 'show') {

但是它告诉我应该用“==”替换“==”有人能告诉我为什么它会给出这个消息吗?

==
是严格的相等运算符

=
是普通的相等运算符,
=
将其操作数转换为相同的类型(如果它们不是相同的类型)

因此,有一种危险,像
“”==0
这样的东西将为您提供true,尽管它们的类型不同

由于涉及到隐式转换,您可能不知道,因为它是自动发生的,因此存在一些难以跟踪的错误或bug的危险和潜在性


=
不会转换其操作数,它只会比较它们。

静默类型转换可能是错误的来源。如果您避免在比较时在数据类型之间进行转换,那么您就避免了许多错误。

==
意味着没有类型强制的相等
=
运算符不会进行转换,它只会比较操作数

sdfx给出的示例非常有助于理解这一点:

0==false   // true
0===false  // false, because they are of a different type
1=="1"     // true, auto type coercion
1==="1"    // false, because they are of a different type
发件人:

JavaScript具有严格和类型转换(抽象)比较。 严格比较(例如==)仅在操作数为 同一类型。更常用的抽象比较(例如==) 在进行比较之前,将操作数转换为相同类型。
对于关系抽象比较(例如,看看这个,但他没有写
”==0
,所以你没有回答这个问题。@LightnessRacesinOrbit我只是举了一个可能出错的例子。无论如何,昆汀总结了我想说的话。