未捕获的语法错误:意外的令牌实例(使用 Chrome Javascript 控制台)

Uncaught SyntaxError: Unexpected token instanceof (with Chrome Javascript console)

本文关键字:使用 Chrome Javascript 控制台 实例 意外 语法 错误 令牌      更新时间:2023-09-26

我很惊讶以下代码输入Chrome js控制台时:

{} instanceof Object

导致以下错误消息:

未捕获的语法错误:意外的令牌实例

谁能告诉我为什么会这样以及如何解决它?

实例的语法是:

RelationalExpression instanceof ShiftExpression

根据 ECMA-262 §11.8

语句开头{的标点符号被视为块的开头,因此下面的}关闭块并结束语句。

下面的instanceof运算符是下一条语句的开头,但它不能在开头,因为它前面必须有一个 RelationalExpression,所以解析器会感到惊讶。

您需要通过在语句的开头放置其他内容来强制将{}视为对象文字,例如

({}) instanceof Object
{}

在那个上下文中,是一个,而不是一个对象文字。

您需要更改上下文(例如,将其包装在()中)以使其成为对象文字。

({}) instanceof Object;

如果你试试这个:

var a = {}
a instanceof Object

输出true,这是预期的输出。

但是,在您的情况下

{} instanceof Object

以上不输出 true。

后者与第一个不同。在第一种情况下,我们创建一个对象文字,而在第二种情况下,我们不这样做。因此,您会收到此错误。

试试

var p = {}
p instanceof Object