Front-end

[JavaScript] 연산자의 우선순위

코소미 2023. 4. 27. 10:26

자바스크립트 연산자의 우선 순위

 

자바스크립트의 연산자 우선수위에 대해서 알아보자.

 

 

하나의 연산식에 둘 이상의 연산자가 있는 경우

실행 순서는 연산자의 우선순위(precedence)에 따라 결정된다.

 

자바스크립트에는 기본적인 사칙연산 외에도 다양한 연산자가 있는데, 이 모든 연산자에는 우선순위가 매겨져 있다.

 

우선순위 숫자가 클수록 먼저 실행이 된다.

순위가 같으면 대부분은 왼쪽부터 시작해서 오른쪽으로 연산이 수행되는데,

 

간혹 = 이나 ** 같은 몇몇 연산은 반대로 하는 경우도 있으니 잘 알아두자 !

 

 

🔸 우선순위연산자 유형기호 표

21 그룹 (...)
...    
17 논리 NOT ! ...
17 typeof typeof ...
16 거듭제곱 ... ** ...
15 곱셈 ... * ...
15 나눗셈 ... / ...
15 나머지 ... % ...
14 덧셈 ... + ...
14 뺄셈 ... - ...
...    
12 미만 ... < ...
12 이하 ... <= ...
12 초과 ... > ...
12 이상 ... >= ...
11 동등 ... == ...
11 부등 ... != ...
11 일치 ... === ...
11 불일치 ... !== ...
...    
6 논리 AND ... && ...
5 논리 OR ... II ...
...    
3 할당 ... = ...

 

🔸 예시

typeof (6 * 2 === 11 || 13 - 7 < 7 && !true);

typeof 연산자, 가장 높은 우선순위인 괄호가 있으니 괄호 내부를 먼저 연산해야 한다.

괄호 내부에서도 다양한 연산자가 있다.

다시 이 괄호 내부에서 가장 높은 우선순위는 NOT연산자를 먼저 연산해주고

true의 NOT연산이니깐, false 이다.

 

typeof (6 * 2 === 11 || 13 - 7 < 7 && false);

그 다음으로 높은 우선순위는 사칙연산이므로, 각각의 연산을 실행하면 아래와 같은 코드가 나온다.

 

typeof (12 === 11 || 6 < 7 && false);

그 다음으로 높은 연산자는 비교 연산이다. 

 

typeof (false || true && false);

이제 남은건 논리 연산이다. 우선순위 표를 보면, AND연산이 OR연산보다 우선순위가 한 단계 높다.

 

typeof (false || false);

true && false의 연산 결과는 false이니까, 마지막 연산은 false || false가 된다.

 

typeof false;

결국 이 연산의 마지막은 typeof false가 되고, 이 모든 연산의 결과값은 문자열 'boolean'이 된다.