연산자(Operator)는 하나 이상의 표현식(expression)을 대상으로 산술, 할당, 비교, 논리, 타입, 지수 연산 등을 수행해 하나의 값을 만든다. 연산의 대상을 피연산자(operand)라 한다.
산술 연산자(arithmetic operator)는 수학적 계산을 수행한다. 산술 연산이 불가능한 경우 NaN(Not a Number)를 반환한다.
산술 연산자는 다음의 두 연산자로 구분할 수 있다.
5 + 2;
5 - 2;
5 * 2;
5 / 2;
5 % 2;
처럼 2개의 피 연산자를 산술 연산한다.
1개의 피연산사를 산술 연산한다.
x++;
x--;
이항 산술 연산자와는 달리 새로운 값을 만드는 것이 아닌 값을 병경하는 부수 효과가 있다.
증감 연산자는 위치에 의미가 있다.
var x = 5, result;
result = x++;
console.log(result, x); // 5 6
result = ++x;
console.log(result, x); // 7 7
피 연산자 앞에 오는 증감 연산자를 전위 증감 연산자라 하며 피 연산자 위에 오는 증감 연산자를 후위 증감 연산자라 한다.
자바스크립트에서 +
연산자는 피연산자중 하나 이상이 문자열인 경우 문자열 연결 연산자로 작동한다. 이를 암묵적 타입 변환 또는 타입 강제 변환이라 한다.
할당 연산자는 우항에 있는 피연산자의 평가 결과를 변수에 할당한다.
var x = 10;
x += 5; // x = x + 5 => x = 15
x -= 5; // x = x - 5 => x = 10
x *= 5; // x = x * 5 => x = 50
x /= 5; // x = x / 5 => x = 10
x %= 5; // x = x % 5 => x = 0
위와 같이 동작한다.
할당문은 값으로 평가되는 표현식인 문으로서 할당된 값으로 평가된다.
var a, b, c;
a = b = c = 0;
따라서 위와 같은 연산이 수행 가능하다.
좌항과 우황의 피연산자를 비교하여 불리언값을 반환한다.
아래와 같이 동작한다.
// == 동등 비교: 좌항과 우항의 값이 같음
// === 일치 비교: 좌항과 우항의 값과 타입이 같음
// != 부동등 비교: 좌항과 우항의 값이 다름
// !== 불일치 비교: 좌항과 우항의 값과 타입이 다름
5 == '5'; // true
5 === '5'; // false
5 != '5'; // false
5 !== '5'; // true
편하지만 종종 결과를 예측하기 어렵고 실수하기 쉽다.
4 > 0; // true
4 < 0; // false
2 >= 1; // true
2 <= 1; // false
위와 같은 종류가 있으며 위 처럼 동작한다.
삼항 조건 연산자는 다음과 같은 구조를 가진다.
var result = 조건식 ? 조건식이 true일 때 반환할 값 : false일때 반환할 값
삼항 조건 연산자는 값으로 표현할 수 있는 표션식인 문이다 따라서 값처럼 사용할 수 있다.
||
, &&
, !
등의 연산자가 있으며 OR, AND, 논리 부정의 역할을 수행한다.
쉽표를 통해 여러개의 변수에 값을 할당할 수 있다.
var a, b, c;
a = 1, b = 2, c = 3;
그룹 연산자를 통해 연산 우선순위를 조절해줄 수 있다.
10 + 2 * 3; // 16
(10 + 2) * 3; // 36
typeof 값
의 형식을 가지며 값의 타입을 문자열로 반환해준다.
3 ** 3; // 27
처럼 사용할 수 있다.