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

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

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

{} instanceof Object

导致此错误消息:

Uncaught SyntaxError: Unexpected token instanceof

任何人都可以告诉我这是为什么以及如何解决它吗?

如果你试试这个:

var a = {}
a instanceof Object

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

但是,在你的情况下

{} instanceof Object

以上不输出true

后者与第一个不同。在第一种情况下,我们创建了一个对象字面量,而在第二种情况下我们没有。因此你得到这个错误。

尝试

var p = {}
p instanceof Object

{},在那种情况下,是一个 ,而不是对象字面量。

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

({}) instanceof Object;

instanceof 的语法是:

RelationalExpression instanceof ShiftExpression

ECMA-262 §11.8.

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

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

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

({}) instanceof Object