你能解释一下这种奇怪的 JavaScript 行为吗?
第一:
[] === [] false
[] == [] false
为什么是假的?对象是相同的,因此它应该返回 true。
第二:
[] !== [] true
[] != [] true
再说一遍,为什么是真的?对象是相同的。
最佳答案
它们并不相同。 Object identity 由指向同一实例的两个操作数定义。
var a = [],
b = [];
a == b; // false
a == a; // true
两个文字始终计算为两个不同的实例,这两个实例不被视为相等。如果您正在寻找结构等效性,请参阅 How to compare arrays in JavaScript? 。
关于javascript - 使用空数组时比较运算符 JavaScript 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19315892/