연산자 우선 순위
- 지금까지 자바스크립트의 여러 연산자에 대해 알아보았습니다.
- 연산자를 하나만 사용하는 경우도 있지만 여러가지를 복합적으로 사용하게 되는 경우도 발생합니다.
- 따라서 연산자에도 우선 순위를 매겨 연산자의 실행 순서를 결정합니다.
- 우선 순위가 높은 연산자가 먼저 실행됩니다.
- 공식 문서에 나와있는 연산자 우선 순위는 다음과 같습니다.
우선순위 | 연산자 유형 | 결합성 | 연산자 |
---|---|---|---|
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으로 가장 높기 때문입니다.)