2017-02-12 86 views
14

在我的空閒時間,我只是用JS控制檯玩,我得到了一個意外的錯誤:爲什麼比較{}和[]顯示錯誤?

js> [] == {} 
false 

js> {} == [] 
typein:5: SyntaxError: syntax error: 

我試着用===

js> [] === {} 
false 
js> {} === [] 
typein:9: SyntaxError: syntax error: 

在想什麼錯在這裏?

我用Firefox,Chrome和jscore測試了這個。

回答

25

這是因爲在第二種情況下,{}被解釋爲代碼塊,而不是對象。

如果您嘗試({}) == []它工作得很好。

js> ({}) == [] 
false 
js> ({}) === [] 
false