산술 연산자는 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만듭니다.
산술 연산이 불가능한 경우, NaN을 반환합니다.
1 + 2; // 3
3 - 2; // 1
5 * 2; // 10
5 / 2; // 2.5
10 % 3; // 1(나머지)
1개의 피연산자를 산술 연산하여 숫자 값을 만드는 단항 산술 연산자도 있습니다.
var x = 1;
x++; // x = x + 1
console.log(x); // 2
x--; // x = x - 1
console.log(x); // 1
피연산자 중 하나 이상이 문자열인 경우 + 연산자는 문자열 연결 연산자로 동작합니다.
'1' + 2; // '12'
할당 연산자는 우항에 있는 피연산자의 평가 결과를 좌항에 있는 변수에 할당합니다. 할당 연산자는 좌항의 변수에 값을 할당하므로 변수 값이 변하는 부수 효과가 있습니다.
| 할당 연산자 | 예 | 동일 표현 |
|---|---|---|
| = | x = 5 | x = 5 |
| += | x += 5 | x = x + 5 |
| -= | x -= 5 | x = x - 5 |
| *= | x *= 5 | x = x * 5 |
| /= | x /= 5 | x = x / 5 |
| %= | x %= 5 | x = x % 5 |
비교 연산자는 좌항과 우항의 피연산자를 비교한 다음 그 결과를 boolean 값으로 반환합니다. 비교 연산자는 if 문이나 for 문과 같은 제어문으 조건식에서 주로 사용합니다. 비교 연산자는 크게 동등/일치 비교 연산자와 대소 관계 비교 연산자가 있습니다.
동등 비교 연산자는 두 개의 피연산자가 동일한지 확인하며, 참과 거짓을 반환합니다. 다른 타입의 피연산자들끼리의 비교를 시도합니다.(느슨한 비교)
5 == 5; // true
5 == '5'; // true
동등 비교 연산자는 좌항과 우항의 피연산자르르 비교할 때 먼저 암묵적 타입 변환을 통해 타입을 이치시킨 후 같은 같인지 비교합니다. 따라서 동등 비교 연산자는 좌항과 우항의 피연산자가 타입은 다르더라고 암묵적 타입 변환 후에 같은 값일 수 있다면 true를 반환합니다.
암묵적 타입 변환 : 개발자의 의도와는 상관없이 자바스크립트 엔진에 의해 암묵적으로 타입이 자동 변환
하지만 동등 비교 연산자는 예측하기 어려운 결과를 만듭니다. 따라서 동등 비교 연산자보다는 일치 비교 연산자를 사용하는 것이 좋습니다.
// 결과 예측이 어려움
false == 'false'; // false
false == '0'; // true
false == null; // false
false == 'undefined'; // false
일치 비교 연산자는 두 피연산자가 타입도 같고 값도 같은 경우에 한하여 참과 거짓을 반환합니다. 동등 연산자와 달리 서로 다른 유형의 피연산자를 서로 다른 것으로 간주합니다.(엄격한 비교) 암묵적 타입 변환을 하지 않고 비교하므로 결과를 예측하기 쉽습니다.
5 === 5; // true
5 === '5'; // false
일치 비교 연산자는 NaN과 0을 주의해야 합니다.
NaN은 자신과 일치하지 않는 유일한 값이고, 자바스크립트에는 양의 0과 음의 0이 있는데 이들을 비교하면 true가 반환됩니다.
NaN === NaN; // false
isNaN(NaN); // true
isNaN(1); // false
0 === -0; // true
0 == -0; // true
| 비교 연산자 | 의미 | 사례 | 설명 |
|---|---|---|---|
| == | 동등 비교 | x == y | x와 y의 값이 같음 |
| === | 일치 비교 | x === y | x와 y의 값과 타입이 같음 |
| != | 부동등 비교 | x != y | x와 y의 값이 다름 |
| !== | 불일치 비교 | x !== y | x와 y의 값과 타입이 다름 |
조건 (삼항) 연산자는 자바스크립트에서 세 개의 피연산자를 받는 유일한 연산자이고 조건식의 평가 결과에 따라 반환할 값을 결정합니다.'조건식 ? 조건식이 true일 때 반환할 값 : 조건식이 false일 때 반환할 값' 으로 사용합니다.
해당 연산자는 if-else문의 대체재로 사용됩니다.
let age = 20;
let beverage = age >= 20 ? 'Beer' : 'Juice';
console.log(beverage); // 'Beer'
조건(삼항) 연산자에서 물음표(?) 앞의 첫 번째 피연산자는 조건식, 즉 boolean 타입으로 평가될 표현식입니다.
조건식의 평가 결과가 true로 평가되면 두 번째 피연산자를 반환하고, false로 평가되면 콜론(:) 뒤 세 번째 피연산자를 반환합니다.
논리 연산자는 우항과 좌항의 피연산자를 논리 연산합니다. 논리 연산자에는 AND(&&), OR(||), NOT(!)이 있습니다.
AND 연산자는 모든 boolean 피연산자가 true가 되었을 때 해당 피연산자의 집합은 true가 됩니다.
true && true; // true
true && false; // false
false && false; // false
OR 연산자는 피연산자 중 하나 이상이 참인 경우에만 참입니다.
true || true; // true
true || false; // true
false || false; // false
NOT 연산자는 참을 거짓으로, 거짓을 참으로 만듭니다.
!true; //false
!false; //true
✅ 참고