자바스크립트에서 연산자는 값을 계산하거나 조작하는 데 사용됩니다. 자바스크립트에는 다양한 종류의 연산자가 있으며, 각각의 연산자는 특정한 기능을 수행합니다. 주요 연산자와 그 사용법에 대해 자세히 설명하겠습니다.
1. 산술 연산자
산술 연산자는 숫자 값을 계산하는 데 사용됩니다.
- 덧셈(+): 두 값을 더합니다.
- 뺄셈(-): 두 값의 차를 구합니다.
- 곱셈(*): 두 값을 곱합니다.
- 나눗셈(/): 두 값을 나눕니다.
- 나머지(%): 두 값의 나머지를 구합니다.
- 거듭제곱()**: 첫 번째 값을 두 번째 값으로 거듭제곱합니다.
let a = 10;
let b = 3;
console.log(a + b); // 13
console.log(a - b); // 7
console.log(a * b); // 30
console.log(a / b); // 3.333...
console.log(a % b); // 1
console.log(a ** b); // 1000
2. 할당 연산자
할당 연산자는 변수에 값을 할당하거나, 값을 갱신하는 데 사용됩니다.
- 기본 할당(=): 값을 할당합니다.
- 덧셈 할당(+=): 값을 더하여 할당합니다.
- 뺄셈 할당(-=): 값을 빼서 할당합니다.
- 곱셈 할당(*=): 값을 곱하여 할당합니다.
- 나눗셈 할당(/=): 값을 나누어 할당합니다.
- 나머지 할당(%=): 나머지를 구하여 할당합니다.
- 거듭제곱 할당(=)**: 거듭제곱한 값을 할당합니다.
let x = 5;
x += 3; // x = x + 3
console.log(x); // 8
x -= 2; // x = x - 2
console.log(x); // 6
x *= 2; // x = x * 2
console.log(x); // 12
x /= 4; // x = x / 4
console.log(x); // 3
x %= 2; // x = x % 2
console.log(x); // 1
x **= 3; // x = x ** 3
console.log(x); // 1
3. 비교 연산자
비교 연산자는 두 값을 비교하여 참(true) 또는 거짓(false)을 반환합니다.
- 동등(==): 두 값이 같으면 참을 반환합니다.
- 엄격 동등(===): 두 값이 같고, 타입도 같으면 참을 반환합니다.
- 부등(!=): 두 값이 다르면 참을 반환합니다.
- 엄격 부등(!==): 두 값이 다르거나, 타입이 다르면 참을 반환합니다.
- 크다(>): 첫 번째 값이 두 번째 값보다 크면 참을 반환합니다.
- 크거나 같다(>=): 첫 번째 값이 두 번째 값보다 크거나 같으면 참을 반환합니다.
- 작다(<): 첫 번째 값이 두 번째 값보다 작으면 참을 반환합니다.
- 작거나 같다(<=): 첫 번째 값이 두 번째 값보다 작거나 같으면 참을 반환합니다.
let a = 5;
let b = '5';
console.log(a == b); // true (타입을 무시하고 값만 비교)
console.log(a === b); // false (값과 타입 모두 비교)
console.log(a != b); // false (타입을 무시하고 값만 비교)
console.log(a !== b); // true (값과 타입 모두 비교)
console.log(a > 3); // true
console.log(a >= 5); // true
console.log(a < 6); // true
console.log(a <= 5); // true
4. 논리 연산자
논리 연산자는 불리언 값을 조합하는 데 사용됩니다.
- AND (&&): 두 피연산자가 모두 참이면 참을 반환합니다.
- OR (||): 두 피연산자 중 하나라도 참이면 참을 반환합니다.
- NOT (!): 피연산자의 반대 값을 반환합니다.
let x = true;
let y = false;
console.log(x && y); // false (둘 다 참이어야 참)
console.log(x || y); // true (하나라도 참이면 참)
console.log(!x); // false (참의 반대는 거짓)
console.log(!y); // true (거짓의 반대는 참)
5. 비트 연산자
비트 연산자는 이진수의 비트 단위로 연산을 수행합니다.
- AND (&)
- OR (|)
- XOR (^)
- NOT (~)
- 왼쪽 시프트 (<<)
- 오른쪽 시프트 (>>)
- 부호 없는 오른쪽 시프트 (>>>)
let a = 5; // 0101
let b = 3; // 0011
console.log(a & b); // 1 (0001)
console.log(a | b); // 7 (0111)
console.log(a ^ b); // 6 (0110)
console.log(~a); // -6 (비트 반전)
console.log(a << 1); // 10 (1010)
console.log(a >> 1); // 2 (0010)
console.log(a >>> 1); // 2 (0010)
6. 삼항 연산자
삼항 연산자는 조건에 따라 값을 선택합니다.
let age = 18;
let canVote = (age >= 18) ? 'Yes' : 'No';
console.log(canVote); // Yes
7. 기타 연산자
- typeof: 피연산자의 타입을 반환합니다.
- instanceof: 객체가 특정 클래스의 인스턴스인지 확인합니다.
let num = 42;
console.log(typeof num); // number
let str = 'Hello';
console.log(typeof str); // string
console.log(num instanceof Number); // false (기본형은 객체가 아님)
console.log(str instanceof String); // false (기본형은 객체가 아님)
let arr = [1, 2, 3];
console.log(arr instanceof Array); // true
이상으로 자바스크립트의 다양한 연산자에 대해 살펴보았습니다. 각각의 연산자를 이해하고 적절히 활용하는 것은 자바스크립트 프로그래밍의 기초를 다지는 데 중요합니다.