연산자 우선 순위
- 지금까지 자바스크립트의 여러 연산자에 대해 알아보았습니다.
- 연산자를 하나만 사용하는 경우도 있지만 여러가지를 복합적으로 사용하게 되는 경우도 발생합니다.
- 따라서 연산자에도 우선 순위를 매겨 연산자의 실행 순서를 결정합니다.
- 우선 순위가 높은 연산자가 먼저 실행됩니다.
- 공식 문서에 나와있는 연산자 우선 순위는 다음과 같습니다.
| 우선순위 | 연산자 유형 | 결합성 | 연산자 |
|---|---|---|---|
| 20 | 그룹 | 없음 | ( … ) |
| 19 | 멤버 접근 | 좌결합성 | … . … |
| 계산된 멤버 접근 | 좌결합성 | … [ … ] |
|
new (매개변수 리스트 존재) |
없음 | new … ( … ) |
|
| 함수 호출 | 좌결합성 | … ( … ) |
|
| 18 | new (매개변수 리스트 생략) |
우결합성 | new … |
| 17 | 후위 증가 | 없음 | … ++ |
| 후위 감소 | … -- |
||
| 16 | 논리 NOT | 우결합성 | ! … |
| 비트 NOT | ~ … |
||
| 단항 양부호 | + … |
||
| 단항 부정 | - … |
||
| 전위 증가 | ++ … |
||
| 전위 감소 | -- … |
||
typeof |
typeof … |
||
void |
void … |
||
delete |
delete … |
||
await |
await … |
||
| 15 | 거듭제곱 | 우결합성 | … ** … |
| 14 | 곱셈 | 좌결합성 | … * … |
| 나눗셈 | … / … |
||
| 나머지 | … % … |
||
| 13 | 덧셈 | 좌결합성 | … + … |
| 뺄셈 | … - … |
||
| 12 | 비트 왼쪽 시프트 | 좌결합성 | … << … |
| 비트 오른쪽 시프트 | … >> … |
||
| 비트 부호 없는 오른쪽 시프트 | … >>> … |
||
| 11 | 미만 | 좌결합성 | … < … |
| 이하 | … <= … |
||
| 초과 | … > … |
||
| 이상 | … >= … |
||
in |
… in … |
||
instanceof |
… instanceof … |
||
| 10 | 동등 | 좌결합성 | … == … |
| 부등 | … != … |
||
| 일치 | … === … |
||
| 불일치 | … !== … |
||
| 9 | 비트 AND | 좌결합성 | … & … |
| 8 | 비트 XOR | 좌결합성 | … ^ … |
| 7 | 비트 OR | 좌결합성 | … | … |
| 6 | 논리 AND | 좌결합성 | … && … |
| 5 | 논리 OR | 좌결합성 | … || … |
| 4 | 조건 | 우결합성 | … ? … : … |
| 3 | 할당 | 우결합성 | … = … |
… += … |
|||
… -= … |
|||
… **= … |
|||
… *= … |
|||
… /= … |
|||
… %= … |
|||
… <<= … |
|||
… >>= … |
|||
… >>>= … |
|||
… &= … |
|||
… ^= … |
|||
… |= … |
|||
| 2 | yield |
우결합성 | yield … |
yield* |
yield* … |
||
| 1 | 쉼표 / 시퀀스 | 좌결합성 | … , … |
- 하지만 이것을 전부 외울 수는 없습니다.
- 일반적으로 사람이 논리적으로 생각하는 방식 대로 우선 순위가 매겨져 있습니다.
- 그래도 헷갈리는 경우가 생기면 경우 괄호를 사용하여 해결하면 됩니다.(괄호가 우선 순위 20으로 가장 높기 때문입니다.)

