为什么比较空对象直接显示false?

Ani*_*bhi -5 javascript

我正在检查我的控制台.当我直接检查空对象时{} == {},它显示为false.

它为什么显示false?不应该表明true两者是平等的吗?

小智 5

当我像{} == {}一样直接检查空对象时,它显示为false.

这里有两个不同的对象而不是一个.这里==检查给定的两个对象是否相同.

场景1:

var foo = {}; //new object
var bar = foo; //shared same object
foo == bar;// true
Run Code Online (Sandbox Code Playgroud)

场景2:

var foo = {}; //new object
var bar = {}; //new object
foo == bar;// false
Run Code Online (Sandbox Code Playgroud)

如果您仍想比较两个不同的对象,请尝试以下方法:

var foo = {}; //new object
var bar = {}; //new object
JSON.stringify(foo) == JSON.stringify(bar);// true
Run Code Online (Sandbox Code Playgroud)

在这里,JSON.stringify({})给出字符串值"{}"