我注意到有很多人在比较Javascript中的东西时会使用三个等号,但我被教导只使用两个。任何人都可以解释为什么有人会使用三个或两个,为什么它们都有效?
- 谢谢:)
另一位用户已经指出这个问题已经被问过了,对不起那些人来说,要看看那个人的答案。
答案 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仅检查匹配。如果你想检查变量的类型,你需要使用三等于。否则你只需要使用双等号。