js object两两比较,为什么不对


if (typeof obj1 == "object" && typeof obj2 == "object" && obj1 != null && obj2 != null)
{
    deepEqual(obj1, obj2);
}


const deepEqual = function(obj1, obj2)
{
    return obj1 === obj2;
}


let obj = {here: {is: "an"}, object: 2};
console.log(deepEqual(obj, obj));
// → true
console.log(deepEqual(obj, {here: 1, object: 2}));
// → false
console.log(deepEqual(obj, {here: {is: "an"}, object: 2}));
// → true  这里我的代码输出结果是false,请问这是为什么,跟===比较有关么

引用和匿名对象的对比,本来就指向的不是同一个对象,尽管内容相同,就算用==也是false;
一般用字符串或者数字可以用这种方式比较是否相同,对象不行

对象比较的是引用地址(理解成来源就行),不是值

===是完全相等。如果两个对象虽然值一样,但依然是2个对象,就像2个双胞胎,看上去一样,但实际上是两个人。所以最后输出false是对的。

和===比较没有关系,就算你使用==也是输出false,因为这是两个不同的对象,尽管对象里面的属性和值都一样