제이스크립트 연산자 우선순위
연산자 우선순위(Operator Precedence)는 수학 표현식에서 연산이 수행되는 순서를 설명합니다.
곱셈(*)와 나눗셈(/)의 우선순위는 더하기(+)와 뺄셈(-)보다 높습니다.
예제
전통 수학과 같이, 먼저 곱셈 연산을 수행합니다:
let x = 100 + 50 * 3;
원형 괄호를 사용할 때, 원형 괄호 내의 연산을 먼저 계산합니다:
let x = (100 + 50) * 3;
우선순위가 같은 연산(예: *와 /)은 왼쪽에서 오른쪽으로 계산됩니다:
let x = 100 / 50 * 3;
연산자 우선순위 값
중간 표현식은 중간 표현식의 나머지 부분보다 먼저 계산되고, 함수는 결과가 중간 표현식의 나머지 부분에 사용되기 전에 실행됩니다:
우선순위 | 연산자 | 설명 | 예제 |
---|---|---|---|
18 | ( ) | 표현식 그룹 | (100 + 50) * 3 |
17 | . | 속성에 속함 | person.name |
17 | [] | 속성에 속함 | person["name"] |
17 | ?. | 옵셔널 체인 ES2020 | x ?. y |
17 | () | 함수 호출 | myFunction() |
17 | new | 가능한 파라미터로 생성 | new Date("June 5,2022") |
16 | new | 불가능한 파라미터로 생성 | new Date() |
증가 연산자포스트fik 증가는 프리фик 증가보다 먼저 수행됨. |
|||
15 | ++ | 포스트фик 증가 | i++ |
15 | -- | 포스트фик 감소 | i-- |
14 | ++ | 프리фик 증가 | ++i |
14 | -- | 프리фик 감소 | --i |
NOT 연산자 |
|||
14 | ! | 논리 비 | !(x==y) |
14 | ~ | 비트 비 | ~x |
단일 연산자 |
|||
14 | + | 단일 증가 | +x |
14 | - | 단일 감소 | -x |
14 | typeof | 데이터 타입 | typeof x |
14 | void | 빈 값 평가 | void(0) |
14 | delete | 속성 제거 | delete myCar.color |
수학 연산자지수 연산은 곱셈보다 먼저 수행됨. 곱셈과 나눗셈은 덧셈과 뺄셈보다 먼저 수행됨. |
|||
13 | ** | 지수 연산 ES2016 | 10 ** 2 |
12 | * | 곱셈 | 10 * 5 |
12 | / | 나눗셈 | 10 / 5 |
12 | % | 정수 나머지 | 10 % 5 |
11 | + | 덧셈 | 10 + 5 |
11 | - | 뺄셈 | 10 - 5 |
11 | + | 연결 | "Bill" + "Gates" |
이동 연산자 |
|||
10 | << | 왼쪽 이동 | x << 2 |
10 | >> | 오른쪽 이동(있음) | x >> 2 |
10 | >>> | 오른쪽 이동(없음) | x >>> 2 |
관계 연산자 |
|||
9 | in | 객체의 속성 | "PI" in Math |
9 | instanceof | 객체의 인스턴스 | x instanceof Array |
비교 연산자 |
|||
9 | < | 느리게 | x < y |
9 | <= | 느리게나 같음 | x <= y |
9 | > | 빠르게 | x > y |
9 | >= | 빠르게나 같음 | x >= Array |
8 | == | 같음 | x == y |
8 | === | 절대로 같음 | x === y |
8 | != | 다르지 않음 | x != y |
8 | !== | 절대로 다르지 않음 | x !== y |
비트 연산자 |
|||
7 | & | 비트 그리고 | x & y |
6 | ^ | 비트 다른 또는 | x ^ y |
5 | | | 비트 또는 | x | y |
논리 연산자 |
|||
4 | && | 논리적 그리고 | x && y |
3 | || | 논리적 또는 | x || y |
3 | ?? | 빈 값 병합 ES2020 | x ?? y |
조건( 삼원) 연산자 |
|||
2 | ? : | 조건 | ? "yes" : "no" |
할당 연산자할당은 다른 연산 이후에 수행됩니다. |
|||
2 | = | 간단 할당 | x = y |
2 | : | 콜론 할당 | x: 5 |
2 | += | 추가할당 | x += y |
2 | -= | 감할당 | x -= y |
2 | *= | 곱할당 | x *= y |
2 | **= | 지수 할당 | x **= y |
2 | /= | 除할당 | x /= y |
2 | %= | 나머지 할당 | x %= y |
2 | <<= | 좌측 이동 할당 | x <<= y |
2 | >>= | 우측 이동 할당 | x >>= y |
2 | >>>= | 없시gn리적 우측 이동 | x >>>= y |
2 | &= | 비트 ∧ 할당 | x &= y |
2 | |= | 비트 또는 할당 | x |= y |
2 | ^= | 비트 이소간 XOR 할당 | x ^= y |
2 | &&= | 논리적 ∧ 할당 | x &= y |
2 | ||= | 논리적 또는 할당 | x ||= y |
2 | => | 화살표 | x => y |
2 | yield | 정지 / 재개 | yield x |
2 | yield* | 위임 연산자 | yield* x |
2 | ... | 확장 연산자 | ... x |
1 | , | 콤마 | x, y |