Monday, 25 June 2018

Why is JavaScript UpdateExpression syntax so defined?

According to Ecma-262, prefix increment and decrement operators are defined as:

UpdateExpression :
    LeftHandSideExpression ++
    LeftHandSideExpression ‐‐
    ++ UnaryExpression
    ‐‐ UnaryExpression

This is surprising, both that the postfix and prefix operators are defined in the same rule, and that it's ++ UnaryExpression when surely a unary expression in general is not actually a valid argument for the update operators.

It would seem cleaner and more logical to define the prefix increment and decrement operators in UnaryExpression itself, along with the other prefix operators, and other C syntax languages do this, e.g. the C standard section 6.5.3 defines unary-expression to include the prefix update operators along with the others.

Why does JavaScript define these operators the way it does?



from Why is JavaScript UpdateExpression syntax so defined?

No comments:

Post a Comment