为什么比较{}和[]显示错误?

Ren*_*han 14 javascript firefox google-chrome javascript-objects

在我的空闲时间,我只是在玩js控制台,我遇到了一个意想不到的错误:

js> [] == {}
false

js> {} == []
typein:5: SyntaxError: syntax error:
Run Code Online (Sandbox Code Playgroud)

我尝试过===:

js> [] === {}
false
js> {} === []
typein:9: SyntaxError: syntax error:
Run Code Online (Sandbox Code Playgroud)

我在这里想错了吗?

我用Firefox,Chrome和jscore测试了这个.

JCO*_*611 25

那是因为在第二种情况下,{}被解释为代码块,而不是对象.

如果你尝试({}) == []它工作得很好.

js> ({}) == []
false
js> ({}) === []
false
Run Code Online (Sandbox Code Playgroud)