JavaScript 式ステートメントを a で開始することはできません{
。これは、インタープリターにあいまいさが生じ、ステートメント ブロックと見なされる可能性があるためです。
したがって、これはオブジェクト リテラルではなく、ステートメント ラベルと数値リテラルを含むステートメント ブロックと見なされます。
{a:1}
しかし、これは無効な構文を持つステートメント ブロックと見なされます。"a":
{"a":1}
しかし、これらは . で始まりません{
。これらは で始まるb =
ため、{
はオブジェクト リテラルの開始と見なされます。
b = {a:1}
b = {"a":1}
12.4 式ステートメント
注ExpressionStatementは、開き中括弧で開始することはできません。これは、 Block とあいまいになる可能性があるためです。また、FunctionDeclarationとあいまいになる可能性があるため、 ExpressionStatementfunction
をキーワードで開始することはできません。
これは、式ステートメントを別の文字で開始して有効にするだけでよいことを意味します。
たとえば、かっこで囲むと、次のように機能します。
({"a": 1})