2017-02-12 55 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