您能解释这种奇怪的JavaScript行为吗?使用空数组时比较运算符JavaScript的奇怪行为
第一:
[] === [] false
[] == [] false
为什么假的?该对象是相同的,因此它应该返回true。
二:
[] !== [] true
[] != [] true
同样,为什么如此?对象是相同的。
您能解释这种奇怪的JavaScript行为吗?使用空数组时比较运算符JavaScript的奇怪行为
第一:
[] === [] false
[] == [] false
为什么假的?该对象是相同的,因此它应该返回true。
二:
[] !== [] true
[] != [] true
同样,为什么如此?对象是相同的。
它们不完全相同。 Object identity由两个指向同一实例的操作数定义。
var a = [],
b = [];
a == b; // false
a == a; // true
两个文字总是评估为两个不同的实例,这两个实例并不相同。如果您正在寻找结构等同性,请参阅How to compare arrays in JavaScript?。
对象是不是相同。在这种情况下,您将比较对象的引用。轻松地说,您会比较这些对象所在的内存中的地址。此规则与您比较实际值的基元无关。
你可以比较值而不是对象。 – user10