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

后端 未结 4 993
挽巷
挽巷 2020-12-11 18:58

I am surprised that the following code when input into the Chrome js console:

{} instanceof Object

results in this error message:

4条回答
  •  臣服心动
    2020-12-11 19:33

    The grammar for instanceof is:

    RelationalExpression instanceof ShiftExpression
    

    per ECMA-262 §11.8.

    The punctuator { at the start of a statement is seen as the start of a block, so the following } closes the block and ends the statement.

    The following instanceof operator is the start of the next statement, but it can't be at the start because it must be preceded by a RelationalExpression, so the parser gets a surprise.

    You need to force {} to be seen as an object literal by putting something else at the start of the statement, e.g.

    ({}) instanceof Object
    

提交回复
热议问题