js New Date()中时间不能直接比较的问题

new Date(null) == new Date(null)的结果竟然为false,请问是为什么?
如图:

img

new Date()是一个对象,首先给你普及一下js中的对象是怎么生成的,在js中,定义对象的时候首先会给这个对象生成一个引用地址,相当于一个门牌号的作用

var obj1 = {a: 1, b: 2}; //在这个操作中,我声明了一个对象obj1,对象里面有两对键值,分别是a: 1, b: 2, 在声明的过程中,js会为这个对象添加一个门牌号,以防止多个对象之间引用错乱,添加的这个门牌号你看不到,只能在存储里做出标识,我们假设obj1添加的这个引用地址为 001

var obj2  =  {a: 1, b: 2}; //在这个操作中,我声明了一个对象obj2,对象里面有两对键值,同样也是a: 1, b: 2, 在声明的过程中,js同样也会为这个对象添加新的门牌号,假设js为obj2添加的门牌号是 002

这么一对比就可以看出来了,虽然对象中的值是一样的,但是他们本身的门牌号并不一样,当js检测到门牌号不一致时,就会返回false

因为等号两边都是 js 对象,只有两边是同一个对象时结果才是 true。但很明显这是两个对象

==的确是对比值,但是相同对象进行比较会是false;楼上的举例很通透

js里==要求同数值等于,对类型不做要求;===是全等于,要求类型和数值都相同。
例如:123 == “123” true;123 === “123” false。
并且补充一点

img

所以原文的new Date(null) == new Date(null) ==> false 。到底为什么false呢?