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

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

本文关键字:语法 错误 为什么 控制台 运行 如果      更新时间:2023-09-26

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

但是,如果我像({} === {})一样将其包装在parens中,那么我会得到false,这是我所期望的。

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

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

如果你把它包装在像 ({} === {}) 这样的括号里,那么它将被视为一个expression,它将被评估为 false,因为两者都引用两个不同的对象。

下面的例子可能会给你一个清晰的画面,

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