2015-09-02 36 views
0

我试图操纵Web消息系统的视图,默认视图是空白对象,{}。我在我的AngularJS脚本中使用了ng-show="data.currentView == {}"来检查它是否是当前的默认视图,但它从未显示过。然后我在Chrome的Javascript控制台中试过这个:为什么对象上的等号运算符返回false?

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

为什么这个语句返回false?

回答

4

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

the specification

如果Type(x)是相同类型(Y),然后......如果X和Y指的是同一个对象,则返回true。否则,返回false。

1

您正在比较引用与对象,所以它们永远不会相等。一个好方法是:

Object.keys(data.currentView).length == 0 
相关问题