이항 산술 연산자
이항 산술 연산자 | 의미 | 비고 |
---|---|---|
+ |
더하기 | |
- |
빼기 | |
* |
곱하기 | |
/ |
나누기 | |
% |
나머지 |
단항 산술 연산자
단항 산술 연산자 | 의미 | 비고 |
---|---|---|
++ |
증가 | 피연산자의 값을 증가시킴 |
-- |
감소 | 피연산자의 값을 감소시킴 |
- |
부호 반전 | 피연산자를 변환하는 것이 아닌 새로운 숫자 타입의 값을 생성 후 반환 |
+ |
효과 없음 |
문자열 연결 연산자
이항 연산자 | 의미 | 비고 |
---|---|---|
+ | 문자열 연결 연산 | 피연산자 중 하나 이상이 문자열인 경우 문자열 연결 연산자로 동작 |
// 문자열 연결 연산
1 + '2'; // '12'
'1' + 2; // '12'
// boolean는 숫자로 타입 변환
1 + true; // 2
1 + false; // 1
// null은 0으로 타입 변환
1 + null; // 1
// undefined는 숫자로 타입 변환 되지 않음
1 + undefined; // NaN
값을 변수에 할당
할당 연산자 | 예시 | 의미 |
---|---|---|
= |
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 |
**= |
x **= 5 | x = x ** 5 |
동등/일치 비교 연산자
비교 연산자 | 의미 | 의미 | 비고 |
---|---|---|---|
== |
동등 비교 | 좌항과 우항의 값이 같음 | 암묵적 타입 변환을 통해 타입을 일치 시킨 후 값 비교 |
=== |
일치 비교 | 좌항과 우항의 값과 타입이 같음 | |
!= |
부동등 비교 | 좌항과 우항의 값이 다름 | |
!== |
불일치 비교 | 좌항과 우항의 값과 타입이 다름 |
// 동등 비교
5 == 5; // true
5 == '5'; // true
false == '0'; // true
false == 'false'; // false
false == null; // false
false == undefined; // false
// 일치 비교
5 === 5; // true
5 === '5'; // false
NaN === NaN; // false
// 숫자가 NaN인지 확인하려면 Number.isNaN 빌트인 함수 사용
Number.isNaN(NaN); // true
Number.isNaN(10); // false
// 양의 0과 음의 0 비교
0 === -0; // true
0 == -0; // true
<aside>
📌 ES6에서 도입된 Object.is
메서드는 보다 정확한 비교 결과를 반환함
0 === -0; // true
Object.is(0, -0); // false
NaN === NaN; // false
Object.is(NaN, NaN); // true
</aside>
대소 관계 비교 연산자
대소 관계 비교 연산자 | 예시 | 의미 | 비고 |
---|---|---|---|
> |
x > y | x가 y보다 크다 | |
< |
x < y | x가 y보다 작다 | |
>= |
x >= y | x가 y보다 크거나 같다 | |
<= |
x <= y | x가 y보다 작거나 같다 |
<aside>
📌 조건식
? true일 때 반환값
: false일 때 반환값
</aside>
const x = 3
console.log(x % 2 ? '홀수' : '짝수'); // 홀수
// 또는 변수에 할당도 가능
const result = x % 2 ? '홀수' : '짝수';
console.log(result); // 홀수
논리 연산자 | 의미 | 비고 |
---|---|---|
` | ` | |
&& |
논리곱(AND) | |
! |
부정(NOT) |
쉼표 연산자( , )는 왼쪽 피연산자부터 차례대로 평가하고 마지막 피연산자의 결과를 반환
let x, y, z;
x = 1, y = 2, z = 3; // 3
소괄호()
로 피연산자를 감싸는 그룹 연산자는 연산자 우선순위가 가장 높음
10 * 2 + 3; // 23
10 * (2 + 3); // 50