2015-09-02 56 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 
相關問題