直接来自节点REPL:
> d1 = {key : "value"}
{ key: 'value' }
> d2 = {"key" : "value"}
{ key: 'value' }
> d1 == d2
false
为什么d1与d2不同?
答案 0 :(得分:8)
不是,如果你只是用d2
而不是d1
重复第一行,你会得到相同的结果。但是,您创建的两个对象是不同的对象,因此它们不是==
。带有对象引用的==
检查两个操作数是否引用相同的对象(规范的Section 11.9.3)。你拥有的是两个对象,它们都有一个名为key
的属性,其值为“value”。
答案 1 :(得分:0)
因为它们是两个不同的对象。它不是比较对象的成员。
答案 2 :(得分:0)
它们不是同一个对象。您正在进行参考相等比较,而不是值比较。