연산자
란 변수나 리터럴(데이터에 보관되는 값이나 값의 표현 방식)에 미리 정의된 처리를 하기 위한 약속된 기호들입니다. 연산자에 따라 다른 처리를 합니다.
산술 연산자
는 다음과 같은 종류가 있습니다.
일반적으로 현실에서 사칙연산을 수행할 때 이용하는 것과 동일한 일을 합니다. 하지만 몇 가지 주의점이 있습니다.
+ 연산자
는 일반적으로 식에 대해 덧셈을 합니다. 문제는 자료형에 따라서 동작이 다르다는 것입니다. 다음과 같은 코드는 어떤 결과를 보일까요?
let num = '10';
num += 3;
문자열인 '10'과 숫자인 3을 더하고 있습니다. 이런 경우 자바스크립트는 다음과 같은 결과를 뱉습니다.
console.log(num); //103
console.log(typeof num); //string
//typeof: 뒤에 오는 변수나 식의 자료형이 무엇인지 알려주는 연산자
'103'이라는 문자열을 결과로 출력했습니다. 이는 숫자 3에 '10'을 더하는 방식으로 바꿔도 동일하게 동작합니다.
이것으로 보아 + 연산자
는 연산에서 문자열이 포함되어 있다면, 무조건 문자열로 반환된다라는 것을 알 수 있습니다. + 연산자
는 다음과 같은 경우 문자열을 반환합니다.
그래서 + 연산자
는 숫자 계산 뿐 만 아니라 문자열을 합치는데에도 이용합니다.
let str = '안녕';
let 예절주입기 = '하세요.';
console.log(str + 예절주입기);
++전위 연산자
와 후위 연산자++
는 실생활에서는 사용되지 않는 생소한 산술 연산자입니다. 전위 연산자
는 변수 앞에 연산자(++, --)를 붙여 사용하고, 후위 연산자
는 변수 뒤에 연산자를 붙여 사용합니다.
++
와 --
는 각각 1을 더하고, 1을 빼라라는 의미를 가지고 있습니다. 그래서 전위 연산자
로 쓰이면 먼저 1을 더하거나 빼고 해당 줄의 명령을 실행하라라는 의미를가지고 있고, 후위 연산자
로 쓰이면 해당 줄의 명령을 먼저 실행하고 1을 더하거나 빼라라는 의미를 가집니다.
let result;
let num = 0;
result = ++num; //num에 먼저 1을 더하고 result에 저장
result = num++; //num을 먼저 result에 저장하고 num에 1을 더한다.
실제로 사용해보면 다음과 같습니다.
let counter = 0;
console.log(counter++);
console.log(++counter);
산술 연산자
를 이용하면 숫자와 문자열을 쉽게 변환할 수 있습니다.
console.log(typeof(109 + ''));
console.log(typeof('109' - 0));
이처럼 숫자 -> 문자열
연산은 + 연산자
를 사용하고, 문자열 -> 숫자
를 하기 위해서는 - 연산자
를 이용하면 쉽게 형변환이 이루어집니다.