NodeJS REPL оценивает код как выражение , обертывая код в круглых скобках, вызывая {"hello":1}
как ({"hello":1})
, который успешно анализируется как литерал объекта.
Обычно и в другом месте (в консоли Chrome / Firefox) фигурные скобки обрабатываются как разделители блока, например:
/*imagine if (true) */ {
"hello": 1 // <-- What's this syntax? It's meaningless.
}
{hello:1}
успешно разбираются, поскольку hello
в этом контексте имеет значение метки :
/*imagine if (true) */ {
hello: 1;
} // ^-- Automatic Semicolon Insertion