在chrome控制台中,我运行{} === {}
,我收到语法错误,意外'==='。
如果我将其包裹在parens中,例如({} === {})
,那么我得到false
,这是我所期待的。
对象文字,在第一个位置,是否与代码块混淆?
答案 0 :(得分:3)
如果没有周围的括号,{}
将被视为javascript中的空code block
。 =
后跟code block
将是无效的语法。这就是你在那里看到错误的原因。
如果将它包装在({} === {})
之类的括号内,那么它将被视为expression
,并且它将被评估为false,因为它们都引用了两个不同的对象。
以下示例可能会为您提供清晰的图片,
{ var x = 5; console.log(x); } == 2
// will throw the same error that you are facing.