연산자 우선 순위 (Operator Precedence)

연산자들의 우선순위는 두 개의 표현식중 어느것이 더 단단히 묶여 있는가를 명기한다. 예를들어 1 + 5 * 316을 반환하지 18을 반환하지 않는다. 왜냐하면 곱하기("*")연산자가 더하기("+")연산자보다 우선순위가 높기 때문이다. 필요하면 괄호를 사용하여 우선순위를 강제적으로 설정할 수 있다. 예를들어 (1 + 5) * 3의 결과는 18이 된다.

다음 표는 연산자의 우선순위를 나타낸다 가장 위에 있는 연산자의 우선순위가 가장 낮다.

표 11-6. Operator Precedence

AssociativityOperators
left,
leftor
leftxor
leftand
rightprint
left = += -= *= /= .= %= &= |= ^= ~= <<= >>=
left? :
left||
left&&
left|
left^
left&
non-associative== != === !==
non-associative< <= > >=
left<< >>
left+ - .
left* / %
right! ~ ++ -- (int) (double) (string) (array) (object) @
right[
non-associativenew