제이스크립트 연산자 우선순위

연산자 우선순위(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

추가로 참조:

강의:JavaScript 연산자

참조 매뉴얼:JavaScript 연산자