연산자는 프로그래밍에서 데이터를 처리하거나 조작하는 데 사용하는 기호 또는 키워드로, 산술 계산, 논리 연산, 대입 등의 작업을 수행한다.
=값을 변수에 할당하거나 업데이트할 때 사용하는 연산자
가장 기본적인 연산자이며, 등호(=)를 사용한다.
사용 예시
let x = 10; // x에 10을 대입
let y = x + 5; // x의 값(10)에 5를 더해 y에 대입
console.log(x); // 결과: 10
console.log(y); // 결과: 15
⚠️ 순서 중요 : 대입 연산자는 오른쪽에서 왼쪽으로 값을 할당한다.
let a = 5;
let b = (a = 10); // a에 10이 대입되고, 그 값을 b에 대입
console.log(a); // 결과: 10
console.log(b); // 결과: 10
⚠️ 값을 덮어씀 : 대입 연산자는 기존 값을 덮어쓰기 때문에, 이전 값은 사라진다.
let num = 100;
num = 200; // 기존 값 100은 사라지고 200으로 대체
console.log(num); // 결과: 200
표현식 가능 : 대입 연산자의 오른쪽에는 단순한 값뿐 아니라 표현식도 올 수 있다.
let num1 = 5;
let num2 = 10;
let result = num1 + num2 * 2; // 우선순위에 따라 num2 * 2가 먼저 계산
console.log(result); // 결과: 25
+, -, *, /, %+ : 덧셈 연산자let sum = 3 + 2; // 5
console.log(sum); // 결과: 5- : 뺄셈 연산자let difference = 3 - 2; // 1
console.log(difference); // 결과: 1* : 곱셈 연산자let product = 3 * 2; // 6
console.log(product); // 결과: 6/ : 나눗셈 연산자let quotient = 3 / 2; // 1.5
console.log(quotient); // 결과: 1.5% : 나머지 연산자let remainder = 3 % 2; // 1
console.log(remainder); // 결과: 1*, /, % > +, -곱셈, 나눗셈, 나머지 연산자가 덧셈, 뺄셈 연산자보다 우선 순위가 높다.
우선 순위가 낮은 부분을 먼저 연산하고 싶을 경우, 해당 부분을 소괄호로 묶어주면 된다.
예시
let num6 = 1 + 2 * 10;
console.log(num6); // 21
let num7 = (1 + 2) * 10;
console.log(num7); // 30 ()
+=, -=, *=, /=, %=, **=산술 연산자와 대입 연산자를 결합하여 사용
기존 값에 연산 결과를 대입하는 방식으로, 변수를 두 번 작성할 필요가 없다.
코드 간결화에 유용하다.
사용 예시
let num8 = 10;
// num8 = num8 + 20; // 변수명을 2번 작성
// += : 기존 값에 더하기
num8 += 20;
console.log(num8); // 30
// -= : 기존 값에서 빼기
num8 -= 20;
console.log(num8); // 10
// *= : 기존 값에 곱하기
num8 *= 20;
console.log(num8); // 200
// /= : 기존 값을 나누기
num8 /= 20;
console.log(num8); // 10
// %= : 기존 값을 나머지로 계산
num8 %= 10;
console.log(num8); // 0
// **= : 기존 값을 거듭제곱으로 계산
num8 = 2;
num8 **= 3;
console.log(num8); // 8 (2의 3제곱)
값을 1씩 증가하거나 1씩 감소시킬 때 사용하는 연산자
전위 연산자(++num, --num)와 후위 연산자(num++, num--)가 있다.
전위 연산자 : 값 변경 후 반환
후위 연산자 : 값 반환 후 변경
예시 : ++
let num9 = 10;
// 전위 연산 (++num9): 증가 후 값을 반환
console.log(++num9); // 11
// 후위 연산 (num9++): 값을 반환한 뒤 증가
console.log(num9++); // 11 (여기서는 반환값이 증가 전의 값)
// 후위 연산의 결과 반영
console.log(num9); // 12
예시 : --
let num9 = 10;
console.log(--num9); // 9 (전위 연산)
console.log(num9--); // 9 (후위 연산)
// 라인이 바뀌고 num9가 1 감소함
console.log(num9); // 8
||let or = true || false;
console.log(or); // truelet isWeekend = true;
let hasHoliday = false;
if (isWeekend || hasHoliday) {
console.log("쉬는 날입니다!"); // 출력: 쉬는 날입니다!
}&&let and = true && false;
console.log(and); // falselet isLoggedIn = true;
let isAdmin = false;
if (isLoggedIn && isAdmin) {
console.log("관리자 페이지에 접속 가능합니다.");
} else {
console.log("접근 권한이 없습니다."); // 출력: 접근 권한이 없습니다.
}!// NOT 연산자 (!): 참을 거짓으로, 거짓을 참으로 반전
let not = !true;
console.log(not); // falselet isUserActive = false;
if (!isUserActive) {
console.log("사용자가 비활성화 상태입니다."); // 출력: 사용자가 비활성화 상태입니다.
}true) 또는 거짓(false)을 반환하는 연산자===, ===== : 값과 자료형 모두 비교 (권장)
== : 값만 비교
예시
// 일치 연산자 (===): 값과 자료형 비교
console.log(1 === "1"); // false (자료형이 다르므로)
// 동등 연산자 (==): 값만 비교
console.log(1 == "1"); // true (값만 비교하므로)
let comp_test1 = 1 === "1"; // false (값과 자료형을 비교)
let comp_test2 = 1 == "1"; // true (값만 비교)
console.log(comp_test1, comp_test2); // false true
// ✅ 권장: 항상 ===를 사용하는 것이 좋다!
let value = "10";
if (value === 10) {
console.log("동일합니다.");
} else {
console.log("값 또는 자료형이 다릅니다."); // 출력: 값 또는 자료형이 다릅니다.
}
// typeof를 활용한 자료형 비교
if (typeof value === "string") {
console.log("value는 문자열입니다."); // 출력: value는 문자열입니다.
}
!==, !=!== : 값과 자료형이 모두 다른 경우 참let comp2 = 1 !== 2;
console.log(comp2); // true>, <, >=, <=> : 초과
< : 미만
>= : 이상
<= : 이하
예시
let comp3 = 2 > 1;
let comp4 = 2 < 1;
let comp5 = 2 >= 2;
let comp6 = 2 <= 2;
console.log(comp3); // true
console.log(comp4); // false
console.log(comp5); // true
console.log(comp6); // true
null 병합 연산자typeof 연산자null 병합 연산자 : ??존재하는 값을 추려내는 기능을 한다.
피연산자 중, null이나 undefined가 아닌 첫 번째 값을 반환한다.
모든 피연산자가 null 또는 undefined라면, 마지막 값을 반환한다.
예시
let var1;
let var2 = 10;
let var3 = 20;
let var4 = var1 ?? var2;
console.log(var4); // 10
let var5 = null ?? undefined ?? var3;
console.log(var5); // 20
typeof 연산자값의 타입을 문자열로 반환하는 기능을 한다.
주로 데이터 타입을 확인하거나 조건문에서 유용하게 사용된다.
예시
let var8 = 1;
var8 = "hello";
console.log(typeof var8); // string
var8 = 20;
console.log(typeof var8); // number
var8 = true;
let t1 = typeof var8;
console.log(t1); // boolean
// 객체와 함수의 경우
const obj = {};
const func = function () {};
console.log(typeof obj); // "object"
console.log(typeof func); // "function"
조건식의 참/거짓 여부에 따라 반환값을 다르게 지정할 수 있다.
조건식 ? 참일 때의 값 : 거짓일 때의 값
예시
let var9 = 10;
// 요구사항 : 변수 res에 var9의 값이 짝수 -> "짝", 홀수 -> "홀"
let res = var9 % 2 === 0 ? "짝수" : "홀수";
console.log(res);
// 중첩 삼항 연산자의 예
let score = 85;
let grade = score >= 90 ? "A" : score >= 80 ? "B" : score >= 70 ? "C" : "F";
console.log(grade); // "B"