모든 연산자는 값을 반환한다.

피연산자

피연산자란 연산자가 연산을 수행하는 대상.
피연산자(operand) = 인수(argument)
2*5 에서 2, 5는 피연산자.

* 피연산자 하나를 받는 연산자 : 단항 연산자 (a = -a)
* 피연산자 둘을 받는 연산자 : 이항 연산자 (a - b)



연산자 우선순위

하나의 표현식에 둘 이상의 연산자가 있는 경우, 실행순서는 우선순위에 의해 결정된다.


산술연산자

덧셈 연산자 +
뺄셈 연산자 -
곱셈 연산자 *
나눗셈 연산자 /
나머지 연산자 %
거듭제곱 연산자 **


덧셈 연산자 `+` 의 피연산자로 숫자가 아닌 문자열이 들어갈 경우 `+` 은 덧셈이 아닌 문자열을 병합하며, 피연산자 중 하나라도 문자열이면 나머지도 문자열로 변환된다.

단, 두개의 숫자 뒤에 문자열이 오는 경우에는 숫자가 먼저 더해지고,
그 더해진 숫자와 문자열의 병합이 일어난다.

나머지 산술연산자들은 피연산자가 숫자형이 아닐 경우, 그 형을 숫자로 바꾸어 계산한다.



할당 연산자

할당 연산자 =
할당연산자는 연산자 우선순위가 3으로 아주 낮아서,
let x = 2 * 2 + 1;
과 같은 표현식에서 2 * 2 + 1 이 먼저 계산되고, 그 값이 x 에 할당된다.

할당 연산자 체이닝
할당 연산자가 여러개 연결된 경우 평가는 우측부터 진행된다.



복합 할당 연산자

복합 할당 연산자 += *=
변수에 연산자를 적용하고,
그 결과를 같은 변수에 저장하는 경우에 사용한다.

복합할당연산자는 할당연산자와 마찬가지로 연산자 우선순위가 3으로 아주 낮아서,
다른 연산자들이 실행된 이후에 실행된다.



증가/감소 연산자

증가 연산자 ++
감소 연산자 --

증가 연산자는 변수를 1 증가시키고,
감소 연산자는 변수를 1 감소시킨다.
단, 증감연산자는 변수에만 사용할 수 있다.
증감연산자는 변수 앞에 놓는지, 변수 뒤에 놓는지에 따라 차이가 있다.
증감 연산자가 앞에 놓이면, 자기자신에게 1을 더해 재할당 이후, 나머지 연산을 계속한다.
증감 연산자가 뒤에 놓이면, 연산이 끝난 이후에, 자기자신에게 1을 더해 재할당한다.



비교 연산자

~보다 큼/작음 > <
~보다 크거나/작거나 같음 >= <=
동등연산자 ==
부등연산자 !=
일치연산자 === (동등연산자의 엄격한 버전)
불일치연산자 !== (부등연산자의 엄격한 버전)

  • 일치,불일치 연산자는 자료형의 동등여부까지 검사하므로 더 엄격하며 에러 발생확률을 줄인다.
  • 비교 연산자는 불린형 (true / false)으로 값을 반환한다.
  • javascript 는 '사전' 순으로 문자열을 비교한다.
    (사전 뒤쪽의 문자열이 사전 앞쪽의 문자열보다 크다고 판단한다.)

  • 다른 형을 가진 값끼리 비교하려 할때는, 값을 모두 숫자형으로 바꾸어 비교한다.
    불린값 true는 1, false는 0, 빈 문자열은 0으로 변환된다.

  • == 동등연산자는 피연산자가 undefined나 null일 때만 형 변환을 하지 않는다.
    undefined와 null 비교시에만 true 를 반환하고,
    그 이외의 경우 무조건 false를 반환한다.
  • 다른 연산자에서 null은 0, undefined는 NaN으로 변환된다.
    NaN이 피연산자인 경우 비교 연산자는 항상 false를 반환한다.

profile
개발과 디자인 두마리 토끼를!

2개의 댓글

comment-user-thumbnail
2022년 12월 4일

모던 자바스크립트 튜터리얼 부셔...!

1개의 답글