这篇博文对js数据类型的分析很透彻。
https://juejin.im/post/595616ea5188250da205da91
最后有部分,有部分顺序写反了:
(6)引用类型的比较是引用的比较
var person1 = {};
var person2 = {};
console.log(person1 == person2); // false
基本类型的比较--当两个比较值的类型相同的时候,相当于是用 === ,所以输出是true。
var person1 = '{}';
var person2 = '{}';
console.log(person1 == person2); // true
上面比较的是两个字符串,而下面比较的是两个对象,为什么长的一模一样的对象就不相等了呢?
引用类型是按引用访问的,换句话说就是比较两个对象的堆内存中的地址是否相同,那很明显,person1和person2在堆内存中地址是不同的:
这两个是完全不同的对象,所以返回false。