См.
Почему {} + {} больше не NaN в консоли Chrome?
Chrome devtools теперь автоматически переносит все, что начинается с {
и заканчивается }
в неявной паре скобок ( см. Код ), чтобы принудительно вычислять его как выражение.
Firefox не делает этого. В Firefox,
{a: 1}
оценивается как блок с меткой , равной a
, с неиспользованным выражением 1
:
{
a:
1
}
(вот почему в FF вы видите, что окончательное вычисленное выражение равно 1
:
)
Но метки не могут быть заключены в разделители строк (метки должны иметь только простой идентификатор , как и переменная), поэтому изменение a:
на "a":
приводит к ошибке, потому что двоеточия могут анализируется только после метки или между парой ключ-значение в объекте.