使用空数组时比较运算符JavaScript的奇怪行为
你能解释一下这种奇怪的JavaScript行为吗 第一:使用空数组时比较运算符JavaScript的奇怪行为,javascript,Javascript,你能解释一下这种奇怪的JavaScript行为吗 第一: [] === [] false [] == [] false 为什么是假的?对象是相同的,因此它应该返回true 第二: [] !== [] true [] != [] true 再说一遍,为什么是真的?对象是相同的 对象不相同。在本例中,将参照与对象进行比较。简单地说,您可以比较这些对象所在的内存中的地址。此规则与比较实际值的原语无关。它们不相同。由指向同一实例的两个操作数定义 var a = [], b =
[] === [] false
[] == [] false
为什么是假的?对象是相同的,因此它应该返回true
第二:
[] !== [] true
[] != [] true
再说一遍,为什么是真的?对象是相同的 对象不相同。在本例中,将参照与对象进行比较。简单地说,您可以比较这些对象所在的内存中的地址。此规则与比较实际值的原语无关。它们不相同。由指向同一实例的两个操作数定义
var a = [],
b = [];
a == b; // false
a == a; // true
两个文本总是计算为两个不同的实例,这两个实例并不相等。如果要查找结构等效性,请参阅。您可以比较值而不是对象。