Operators are evaluated in the order supplied in the following table. Associativity applies when more than one operation with the same precedence takes place. Left-to-right Associativity means that operations of equal weight in a single statement are performed from left to right.
| Order | Assoc | Operator | Summary |
|---|---|---|---|
| 1 |
L L L R |
. [] () new |
Retrieve object property. Array index or associative object property. Function call. Instantiate an object. |
| 2 |
R R R R R R R R R |
++ -- - + ~ ! delete typeof void |
Pre- or post-increment. (unary) Pre- or post-decrement. (unary) Negation. (unary, NOT subtraction) No operation, use numerical value. (unary, NOT addition) Bitwise complement. (unary) Logical complement. (unary) Destroy an object property. (unary) Return datatype. (unary) Return undefined. (unary) |
| 3 | *, /, % | L | Multiply, divide, modulo (remainder) |
| 4 |
L L |
+, - + |
Add, subtract. Concatenate strings. |
| 5 |
L L L |
<< >> >>> |
Shift left. Shift right and extend sign. Shift right and pad with zeroes. |
| 6 |
L L L L |
<, <= >, >= instanceof in |
Less than, less than or equal. Greater than, greater than or equal. Verify an object's constructor. Verify an object's property exists. |
| 7 |
L L L L |
== != === !== |
Are operands equal? Are operands NOT equal? Are operands identical? Are operands NOT identical? |
| 8 | L | & | Bitwise AND |
| 9 | L | ^ | Bitwise XOR |
| 10 | L | | | Bitwise OR |
| 11 | L | && | Local AND |
| 12 | L | || | Local OR |
| 13 | R | ? : | Conditional operator (ternary) |
| 14 |
R R |
= *=, /=, %=, +=, -=, <<=, >>=, >>>=, &=, ^=, |= |
Assign value. Perform operation, then assign value. |
| 15 | L | , (comma) | Multiple evaluation. |
I'm a Senior Culinary Software Developer at Yummly working on various front-end and middle-tier tasks, primarily using JavaScript. I blog about web design and development topics including accessibility, usability, performance, and developing HTML / CSS / JavaScript applications on Appcelerator Titanium and Adobe AIR.
If you're a web developer, you might enjoy Jelo, my JavaScript library.
All original work on this site is covered by a Creative Commons Attribution 3.0 license unless otherwise specified.
You may share or use any code or images from this site in any manner, for free, so long as reasonable effort has been made to give credit where due.
The views expressed in the posts and comments on this blog do not necessarily reflect those of my current or former employers.