07.4. 부수효과, 우선순위, 결합순서
연산자의 부수효과, 연산자의 우선순위, 연산자 결합순서
연산자의 부수효과
대부분의 연산자는 다른 코드에 영향을 주지 않는다. 예를 들어, 1 * 2
는 다른 코드에 어떠한 영향도 주지 않고 새로운 값 2
를 만들어 낼 뿐이다. 하지만, 일부 연산자는 다른 코드에 영햐을 주는 부수 효과가 있다.
Key Point💡
부수효과를 주는 연산자 :
할당 연산자(=)
,증가/감소 연산자(++/--)
,delete
연산자
할당 연산자
할당 연산자는 변수 값이 변하는 부수 효과가 있다. 이는 선언한 변수의 식별자를 사용하는 다른 코드에 영향을 준다.
증가/감소 연산자(++/--)
증가/감소 연산자(++/--)는 피연산자의 값을 변경하는 부수 효과가 있다.
delete 연산자
delete 연산자는 객체의 프로퍼티를 삭제하는 부수효과가 있다.
연산자 우선순위
연산자 우선순위란 여러 개의 연산자로 이뤄진 문이 실행될 때, 연산자가 실행되는 순서를 의미한다. 우선순위가 높을 수 록 먼저 실행이 된다.
1
()
2
new(매개변수 존재)
, [](프로퍼티 접근)
,()(함수 호출)
, ?.(옵셔널 체이닝)
3
new(매개변수 미존재)
4
x++
, x--
5
!x
, +x
, -x
,++x
, --x
, typeof
, delete
6
**(이항 연산자 중에서 우선순위가 가장 높다)
7
*
, /
, %
8
+
, -
9
<
, <=
, >
,>=
,in
, instanceof
10
==
, !=
, ===
, !==
11
??(null 병합 연산자)
12
&&
13
\\
14
? ... : ...
15
할당 연산자 (=, +=, -=, ...)
16
,
Key Point💡 연산자는 종류가 많아서 연산자 우선순위를 모두 기억하기는 쉽지가 않기 때문에, 가장 높은 그룹 연산자를 사용하여 우선순위를 명시적으로 조절하는 것이 좋다.
연산자 결합순서
연산자 결합 순서란 연산자의 어느쪽으로 부터 평가를 수행할 것인지를 나타낸다.
좌항 -> 우항
+
, -
, /
, %
, <
, <=
, >
, >=
, &&
, \\
, .
, []
,()
, ??
, ?.
, in
, instanceof
우항 -> 좌항
++
, --
할당 연산자(=, +=, -=, ...)
, !x
, +x
, -x
, ++x
, --x
, typeof
, delete
, ? ... : ...
요약
대부분의 연산자는 다른 코드에 영향을 주지 않지만, 부수효과를 주는 연산자가 있다.
부수효과를 주는 연산자 :
할당 연산자(=)
,증가/감소 연산자(++/--)
,delete
연산자delete 연산자는 객체의 프로퍼티를 삭제한다.
연산자 우선순위에서 가장 높은 그룹 연산자로 순서를 조절하는 것이 좋다.
Last updated