如果我在控制台中 运行 this,为什么会出现语法错误? {} === {}

Why do I get a syntax error if I run this in the console? {} === {}

在 Chromium 控制台中,我 运行 {} === {} 出现语法错误,意外的“===”。

如果我用括号括起来,比如 ({} === {}),那么我会得到 false,这是我所期望的。

第一个位置的对象文字是否与代码块或其他东西混淆?

如果没有括号,{} 将被视为 javascript 中的空 code block= 后跟 code block 将是无效语法。这就是您在那里看到错误的原因。

如果你将它包裹在括号内,如 ({} === {}),那么它将被视为 expression 并且它将被评估为 false,因为两者都引用了两个不同的对象。

下面的例子可能会让你对它有一个清晰的了解,

{ var x = 5; console.log(x); } == 2
// will throw the same error that you are facing.