[커뮤니티] [09] 연산자 - 1.연산자의 우선순위
Overview<p>연산자에는 수식 표현식, 비교 표현식, 논리 표현식, 할당 표현식 등이 있다. 대부분의 연산자는 +,=,& 와 같이 부호로 표현되지만, typeof, instanceof와 같이 간략한 키워드로 표현하는것도 있다.</p>
각각의 연산자에 대한 설명은 다음장에서 한다.
1. 연산자의 우선순위
연산자의 연산순위를 이해한다고 해도 코드를 만들때는 괄호를 사용해 연산순서를 명시적으로 표현하는 것이 가독성에 좋다.
* 속성접근(.)이나 함수/메서드 호출식은 우선순위가 가장 높다.
ex)
++a.x; // a.x의 값을 증감
typeof a.myFunction(); // 메소드 호출결과의 타입을 반환
우선순위 | 연산자 | 역활, 설명 | 읽는방향 | 피연산자 개수 | 반환 타입 |
1 | ++
--
-
+
~
!
delete
typeof
void
| 전치or후치증가전치or후치감소음수양수비트(NOT)연산논리(NOT)연산속성제거타입반환undefined반환 | 오른쪽부터 | 1 | 숫자숫자숫자숫자정수불리언불리언문자열undefined |
2 | *
/
%
| 곱셈나눗셈나머지 | 왼쪽부터 | 2 | 숫자 |
3 | +
-
+
| 덧셈뺄셈문자열 연결 | 왼쪽부터 | 2 | 숫자숫자문자열 |
4 | <<
>>
>>>
| 비트이동비트이동(부호비트제외)비트이동(부호비트포함) | 왼쪽부터 | 2 | 숫자 |
5 | <
<
<=
<=
>
>
>=
>=
instanceof
in
| 숫자비교문자비교숫자비교문자비교숫자비교문자비교숫자비교문자비교객체타입확인속성확인 | 왼쪽부터 | 2 | 불리언 |
6 | ==
!=
===
!==
| 같다같지않다타입까지비교타입까지비교 | 왼쪽부터 | 2 | 불리언 |
7 | & | 비트AND | 왼쪽부터 | 2 | 숫자 |
8 | · | 비트XOR | 왼쪽부터 | 2 | 숫자 |
9 | | | 비트OR | 왼쪽부터 | 2 | 숫자 |
10 | && | 논리AND | 왼쪽부터 | 2 | 타입무방 |
11 | || | 논리OR | 왼쪽부터 | 2 | 타입무방 |
12 | ?: | 3항조건식 | 오른쫀부터 | 3 | 타입무방 |
13 | =
*=
/=
%=
+=
-=
&=
·=
|=
<<=
>>=
>>>=
| 대입(할당) | 오른쪽부터 | 2 | 타입무방 |
14 | . | 쉼표연산자 | 왼쪽부터 | 2 | 타입무방 |