在许多情况下,JavaScript的类型强制相等运算符不可传递。例如,请参阅“JavaScript equality transitivity is weird。”
但是,是否存在==
不是对称的情况?也就是说,a == b
是true
而b == a
是false
?
答案 0 :(得分:35)
假设是对称的。但是,在某些版本的IE中存在不对称的情况:
window == document; // true
document == window; // false
答案 1 :(得分:30)
在Javascript中,==
始终为symmetric。
注2:相等运算符 维护以下不变量:
A != B
相当于!(A == B)
。A == B
相当于B == A
,除了评估顺序A and B
。
答案 2 :(得分:10)
您实际问题的答案(操作员是对称的)是肯定的。 ECMA-262规范明确指出:
注2:相等运算符维护以下不变量:
A != B
相当于!(A == B)
。 A == B
相当于B == A
,但评估A
和B
的顺序除外。