Javascript 为什么对象上的相等运算符返回false?

Javascript 为什么对象上的相等运算符返回false?,javascript,angularjs,Javascript,Angularjs,我试图操作web消息传递系统的视图,默认视图是一个空白对象,{}。我在AngularJS脚本中使用了一个ng show=“data.currentView=={}”来检查它当前是否是默认视图,但从未显示。然后,我在Chrome的Javascript控制台中尝试了以下方法: var data = {} console.log(data == {}) //Logs false console.log(data === {}) //Logs false 为什么该语句返回false?您正在测试两个对象

我试图操作web消息传递系统的视图,默认视图是一个空白对象,
{}
。我在AngularJS脚本中使用了一个
ng show=“data.currentView=={}”
来检查它当前是否是默认视图,但从未显示。然后,我在Chrome的Javascript控制台中尝试了以下方法:

var data = {}
console.log(data == {})
//Logs false
console.log(data === {})
//Logs false

为什么该语句返回false?

您正在测试两个对象是否是相同的对象,而不是它们是否是相同的对象

见:

如果类型(x)与类型(y)相同,那么…如果x和y引用相同的对象,则返回true。否则,返回false


您正在测试两个对象是否是相同的对象,而不是它们是否是相同的对象

见:

如果类型(x)与类型(y)相同,那么…如果x和y引用相同的对象,则返回true。否则,返回false


您正在将引用与对象进行比较,因此它们永远不相等。一个好办法是:

Object.keys(data.currentView).length == 0

您正在将引用与对象进行比较,因此它们永远不相等。一个好办法是:

Object.keys(data.currentView).length == 0