연산자 (Operator)은 하나 이상의 표현식을 대상으로 산술, 할당, 비교, 논리, 지수 연산 등을 수행해 하나의 값을 만든다.
수학적 계산으러 새로운 숫자 값을 만든다. 계산이 불가능한 경우 NaN을 반환한다.
| 이항 산술 연산자 | 의미 |
|---|---|
| + | 더하기 |
| - | 빼기 |
| * | 곱하기 |
| / | 나누기 |
| % | 나머지 |
| ** | 좌항= 밑, 우항=지수 |
| 단항 산술 연산자 | 의미 |
|---|---|
| ++ | 증가 |
| -- | 감소 |
| - | 부호 전환 |
증가와 감소는 피연산자의 값을 변경한다.
증가와 감소는 위치에 의미가 있다.
x++ = 선 할당 후 증가
++x = 선 증가 후 할당
x-- = 선 할당 후 감소
--x = 선 감소 후 할당
걍 순서 그대로
숫자 타입이 아닌 피연산자에 단한 연산자를 사용하면 피연산자를 숫자타입으로 변환하여 반환한다.
var x = '1';
console.log(+x); // 1
console.log(x); // '1'
x = true;
console.log(+x); // 1
console.log(x); // true
x = false;
console.log(+x); // 0
console.log(x); // false
(-) 부호전환
-'10'; // -10
-true; // -1
문자열 연결 연산자
'1' + 2; // '12'
1 + '2'; // '12'
1 + true; //2
1 + false; //0
1 + true 가 2인 이유: 자바스크립트 엔진의 암묵적 타입변환
우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당함.
| 할당 연산자 | 의미 |
|---|---|
| = | x = n |
| += | x = x + n |
| -= | x = x - n |
| *= | x = x * n |
| /= | x = x / n |
| %= | x = x % n |
연쇄할당
a = b = c = 0;
좌항과 우항의 피연산자를 비교한 후 결과를 불리언 값으로 반환함.
if문이나 for 문 같은 조건식에서 주로 사용됨.
동등/일치 비교 연산자
동등 비교 연산자는 느슨하게, 일치 비교 연산자는 엄격하게.
| 비교 연산자 | 의미 |
|---|---|
| == | 동등 비교 |
| === | 일치 비교 |
| != | 부동등 비교 |
| !== | 불일치 비교 |
// 동등 비교 연산자의 안티 패턴
'0' == ''; //false
0 == ''; //true
0 == '0'; //true
false == 'fasle'; //false;
false == '0' //true
false == null //false
false == undefined //false
대소 관계 비교 연산자
| 대소 관계 비교 연산자 |
|---|
| > |
| < |
| >= |
| <= |
조건식의 평가 결과에 따라 반환할 값을 결정.
condition ? exprIfTrue : exprIfFalse;
// 조건식 ? 참일 때 값 : 거짓일 때 값;
(||) 논리합 (OR)
(&&) 논리곱 (AND)
(!) 부정 (NOT)