연산자들의 우선순위는 두 개의 표현식중 어느것이 더 단단히 묶여 있는가를 명기한다. 예를들어 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 |