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

时间:2013-05-19 11:04:21

标签: javascript

我注意到有很多人在比较Javascript中的东西时会使用三个等号,但我被教导只使用两个。任何人都可以解释为什么有人会使用三个或两个,为什么它们都有效?

- 谢谢:)

另一位用户已经指出这个问题已经被问过了,对不起那些人来说,要看看那个人的答案。

4 个答案:

答案 0 :(得分:10)

以下所有评估都将返回 true

使用== JS 类型-juggle。

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

使用=== JS 不会类型-juggle

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

答案 1 :(得分:3)

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

答案 2 :(得分:2)

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

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

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

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

答案 3 :(得分:0)

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