DEV Community

Cover image for Understanding Operator Associativity in JavaScript
Magesh
Magesh

Posted on

Understanding Operator Associativity in JavaScript

In JavaScript, operator associativity determines the order in which operators of the same precedence level are evaluated in an expression. Operators can be either left-associative (evaluated from left to right) or right-associative (evaluated from right to left).

Left-Associative Operators

Most operators, like +, -, *, and /, are left-associative. This means that when there are multiple of these in one expression, the computer calculates from left to right.

For example:

10 - 3 - 2
Enter fullscreen mode Exit fullscreen mode

This is done as (10 - 3) - 2, giving 5. The left part is calculated first.

Right-Associative Operators

Some operators, like the exponentiation operator (**), are right-associative. This means that when you see multiple ** in one line, it calculates from right to left.

For example:

2 ** 3 ** 2
Enter fullscreen mode Exit fullscreen mode

This is calculated as 2 ** (3 ** 2), giving 512. The right part is calculated first.

Why Associativity Matters

  • Associativity impacts complex expressions with multiple operators of the same precedence, so understanding it helps avoid unexpected results.
  • Associativity does not affect operators with different precedence; those are evaluated based on precedence rules.

Summary Table

Operator Associativity Example
+, -, *, / Left 10 - 3 - 2
** Right 2 ** 3 ** 2
=, +=, -= Right a = b = c

Understanding associativity and precedence is crucial when writing clear and predictable JavaScript expressions.

Top comments (0)