私は驚いてその次のコードときクロムJSコンソールへの入力:このエラーメッセージに捕捉されなかっにSyntaxError:(クロームJavaScriptコンソールで)instanceofの予期しないトークン
{} instanceof Object
結果:
Uncaught SyntaxError: Unexpected token instanceof
誰もがそれがなぜ、どのようにそれを修正するか教えてくださいできますか?
私は驚いてその次のコードときクロムJSコンソールへの入力:このエラーメッセージに捕捉されなかっにSyntaxError:(クロームJavaScriptコンソールで)instanceofの予期しないトークン
{} instanceof Object
結果:
Uncaught SyntaxError: Unexpected token instanceof
誰もがそれがなぜ、どのようにそれを修正するか教えてくださいできますか?
instanceofはための文法は次のとおりです。ECMA-262 §11.8あたり
RelationalExpression instanceof ShiftExpression
。
文頭にある句読点{
はブロックの開始点と見なされるため、次のように}
がブロックを閉じて文を終了します。
次instanceof
オペレータは、次の文の始まりであるが、それは関係式が先行されなければならないので、それは開始時にすることはできませんので、パーサは驚きを取得します。
{}
をオブジェクトのリテラルとして見なす必要があるのは、文の先頭に何かを入れることです。
({}) instanceof Object
あなたはこの試みる場合:期待される出力され
var a = {}
a instanceof Object
出力true
を、。
しかし、あなたのケースで
{} instanceof Object
上記真出力しません。
後者は、最初のものと同じではありません。最初のケースでは、オブジェクトリテラルを作成しますが、後者の場合は作成しません。したがって、このエラーが発生します。
var p = {}
p instanceof Object
これは素晴らしい説明です(+1)。ありがとう! – Christos