Skip to content Skip to sidebar Skip to footer

Why Does Adding Parentheses Prevent An Error?

Why is it when I write {}.key = 0 in the chrome console I get an error: > {}.key = 0 > Uncaught SyntaxError: Unexpected token . But when I encapsulate the above expression i

Solution 1:

{ } are overloaded in JavaScript syntax. They're used for both blocks (of statements) and object literals. The rule is: If a { appears at the start of a statement, it is parsed as a block; otherwise it is an object literal.

In {}.key the { appears at the start of the statement. It parses as

{
    // this is an empty block
}
.key  // syntax error here

Adding any token before { (such as () makes it parse as an object literal. For example, 42, {}.key = 0 would also work.

Post a Comment for "Why Does Adding Parentheses Prevent An Error?"