在许多情况下,JavaScript 的类型强制相等运算符是不可传递的。例如,请参阅“ JavaScript 相等传递性很奇怪”。
但是,是否存在==
不对称的情况?也就是说,在哪里a == b
,true
在b == a
哪里false
?
在许多情况下,JavaScript 的类型强制相等运算符是不可传递的。例如,请参阅“ JavaScript 相等传递性很奇怪”。
但是,是否存在==
不对称的情况?也就是说,在哪里a == b
,true
在b == a
哪里false
?
应该是对称的。但是,在某些版本的 IE 中存在不对称情况:
window == document; // true
document == window; // false
您的实际问题(运算符是否对称)的答案是肯定的。ECMA-262规范明确指出:
注 2 等式运算符保持以下不变量:
A != B
相当于!(A == B)
。A == B
等价于,除了和B == A
的求值顺序。A
B