在javascript中,比较变量时使用两个等号或三个更好

In javascript, is it better to use two equal signs or three when comparing variables

本问题已经有最佳答案,请猛点这里访问。

我注意到相当多的人在比较javascript中的内容时使用三个等号,但我被教导只使用两个等号。有人能解释一下为什么有人会使用三个或两个,为什么它们都能工作吗?

-谢谢:

另一位用户指出,问题已经被问到了,关于那个家伙,很抱歉,要看看那个人的答案。


以下所有评估将返回true

==JS会打字变戏法。

1
2
3
4
5
1 == '1'
1 == 1
1 == true
0 != true
0 == false

===JS不会玩花样游戏

1
2
3
4
1 !== '1'
1 === 1
1 !== true
0 !== false


这取决于用例。三重等于是检查一致性;换句话说,不仅是等价的,而且是同一类型。这是一个很好的参考资料


identity==运算符与equality==运算符相同,但未进行类型转换,因此类型必须相同才能被视为相等。

执行任何必要的类型转换后,==运算符将比较是否相等。

===运算符不进行转换,因此如果两个值不是同一类型,==只返回false。

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


triple equal也将检查变量的类型,而double equal只检查匹配。如果你想检查变量的类型,你需要使用三等号。否则你只需要用双等号。