I knew that {} is either an object or a block of code, but today my co-worker asked me why {foo: 1} works when entered into the console, but
{}
{foo: 1}
By itself, {a: 1} is a block statement, where a is a label.
{a: 1}
a
Of course, in a context where an expression is expected, it is an object literal:
var o = { a: 1 };