在JavaScript中,比较变量时,使用两个等号还是三个等号更好?

5
我注意到很多人在JavaScript中比较事物时使用三个等号,但我被教导只使用两个。有人可以解释一下为什么会使用三个或两个,以及它们为什么都有效吗?-谢谢:)另一个用户指出这个问题已经被问过了,对不起,朋友们,我将看看那个问题的答案。

谢谢,我会去看看的。 - entropy
4个回答

12

所有以下的评估都会返回 true

使用 ==,JS会进行类型转换

1 == '1'
1 == 1
1 == true
0 != true
0 == false

使用 ===,JS不会进行类型转换

1 !== '1'
1 === 1
1 !== true
0 !== false

@Stano,请解释一下。我认为“1不等于'1'”(整数转字符串),但是在前两个“===”的例子中,“1确切地等于1”(整数到整数)。 - Jordan Doyle
感谢@Stano,已添加到我的答案中。 - Jordan Doyle

4

身份 === 操作符与等号 == 操作符相同,除了不进行任何类型转换,因此必须具有相同的类型才能被视为相等。

== 操作符将在执行任何必要的类型转换后进行比较相等。

=== 操作符不会进行转换,因此如果两个值不是相同类型的,则 === 将简单地返回 false。

对于我来说,通常我总是使用 ===!==,以免留下任何机会。


3

这取决于使用情况。三个等号用于检查完全相等性; 换句话说,不仅相等,而且是同一类型。 这里有一个很好的参考文献


1

三个等号会检查变量的类型,而双等号只会检查匹配。如果你想要检查变量的类型,你需要使用三个等号。否则,你只需要使用双等号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接