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

时间:2015-01-13 11:05:45

标签: javascript google-chrome-devtools

输入Chrome js控制台时,我对以下代码感到惊讶:

{} instanceof Object

导致出现此错误消息:

  

Uncaught SyntaxError:意外的令牌实例

任何人都可以告诉我为什么会这样,以及如何解决它?

4 个答案:

答案 0 :(得分:12)

instanceof 的语法是:

RelationalExpression instanceof ShiftExpression

per ECMA-262 §11.8

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

以下instanceof运算符是下一个语句的开头,但它不能在开头,因为它必须在 RelationalExpression 之前,因此解析器得到一个惊喜。

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

({}) instanceof Object

答案 1 :(得分:3)

{},在该上下文中,是,而不是对象文字。

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

({}) instanceof Object;

答案 2 :(得分:1)

如果您尝试这样做:

var a = {}
a instanceof Object

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

但是,在您的情况下

{} instanceof Object

上述情况并非如此。

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

答案 3 :(得分:1)

尝试

var p = {}
p instanceof Object