The precedence of an operator specifies how "tightly" it binds two expressions together. For example, in the expression 1 + 5 * 3, the answer is 16 and not 18 because the multiplication ("*") operator has a higher precedence than the addition ("+") operator.
The following table lists the precedence of operators with the lowest-precedence operators listed first.
Table 10-6. Operator Precedence
| Associativity | Operators |
|---|---|
| left | , |
| left | or |
| left | xor |
| left | and |
| right | |
| left | = += -= *= /= .= %= &= |= ^= ~= <<= >>= |
| left | ? : |
| left | || |
| left | && |
| left | | |
| left | ^ |
| left | & |
| non-associative | == != === |
| non-associative | < <= > >= |
| left | << >> |
| left | + - . |
| left | * / % |
| right | ! ~ ++ -- (int) (double) (string) (array) (object) @ |
| right | [ |
| non-associative | new |