我有以下代码:
var a = new Object();
var b = {};
console.log(a == b || a === b);
并打印出
false
。这背后的原因是什么?
当您比较对象时,您正在测试它们是否同一个对象。
您有两个不同的(尽管实际上相同)对象。
当您比较对象的相等性时,您会比较两个对象是否具有相同的实例(这意味着您比较的变量确实引用相同的内存)。
您有两个不同的实例,因此相等比较会产生 false。
如果你想检查两个对象的所有属性是否具有相等的值,那就是另一回事了,你真的必须检查每个对象属性的相等性。