연산자들의 우선순위는 두 개의 표현식중 어느것이 더 단단히 묶여 있는가를 명기한다. 예를들어 1 + 5 * 3은 16을 반환하지 18을 반환하지 않는다. 왜냐하면 곱하기("*")연산자가 더하기("+")연산자보다 우선순위가 높기 때문이다. 필요하면 괄호를 사용하여 우선순위를 강제적으로 설정할 수 있다. 예를들어 (1 + 5) * 3의 결과는 18이 된다.
다음 표는 연산자의 우선순위를 나타낸다 가장 위에 있는 연산자의 우선순위가 가장 낮다.
표 11-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 |