答案 0 :(得分:1)
这里的问题与==
或!=
运算符无关,而是在JavaScript中没有两个对象是相同的。
var obj1 = {
name: 'Joe'
}
var obj2 = {
name: 'Joe'
}
var obj3 = obj1;
console.log(obj1 == obj2); // false (2 separate objects)
console.log(obj1 == obj3); // true (pointing to the same object)
var primitive1 = 'aaa';
var primitive2 = 'aaa';
console.log(primitive1 == primitive2); // true (compared by value)

比较这些对象时,JavaScript只是通过引用进行比较。您已在内存中创建了2个不同的对象,JavaScript仅通过查看引用来比较非基元。