Files
javascript-examples/doc/04_연산자.md
2025-01-26 02:15:33 +09:00

3.7 KiB

연산자와 표현식

자바스크립트에서 **연산자(Operator)**와 **표현식(Expression)**는 데이터를 처리하고 동작을 수행하는 기본 구성 요소입니다. 연산자는 값을 조작하거나 연산을 수행하는 기호이며, 표현식은 하나의 값으로 평가될 수 있는 코드입니다.

연산자

연산자는 특정 작업을 수행하기 위해 사용하는 기호나 키워드입니다. 자바스크립트의 연산자는 크게 다음과 같이 분류할 수 있습니다:

산술 연산자

숫자 데이터를 연산할 때 사용됩니다.

  • 덧셈: +
  • 뺄셈: -
  • 곱셈: *
  • 나눗셈: /
  • 나머지: %
  • 거듭제곱: **
  • 증가: ++
  • 감소: --
let x = 10;
let y = 5;

console.log(x + y); // 15
console.log(x - y); // 5
console.log(x * y); // 50
console.log(x / y); // 2
console.log(x % y); // 0

할당 연산자

변수에 값을 할당하거나 연산 결과를 저장할 때 사용합니다.

  • 단순 할당: =
  • 복합 할당: +=, -=, *=, /=, %=
let a = 10;
a += 5; // a = a + 5; 와 같음
console.log(a); // 15

비교 연산자

두 값을 비교하고 결과를 불리언 값(true 또는 false)으로 반환합니다.

  • 같음: == (형 변환 후 비교), === (형 변환 없이 비교)
  • 다름: !=, !==
  • 크다: >
  • 작다: <
  • 크거나 같다: >=
  • 작거나 같다: <=
let b = 10;
console.log(b == "10"); // true (형 변환 후 비교)
console.log(b === "10"); // false (형 변환 없이 비교)

논리 연산자

불리언 값을 조합하거나 조작할 때 사용됩니다.

  • AND: &&
  • OR: ||
  • NOT: !
let c = true;
let d = false;
console.log(c && d); // false
console.log(c || d); // true
console.log(!c); // false

비트 연산자

  • & (AND) 두 비트가 모두 1일 때만 1을 반환합니다.
  • | (OR)
  • ^ (XOR) 두 비트가 다를 때 1을 반환합니다.
  • ~ (NOT) 비트를 반전시킵니다. (0 -> 1, 1 -> 0)
  • << (왼쪽 시프트) 숫자를 왼쪽으로 특정 비트만큼 이동시킵니다. 빈 자리는 0으로 채워집니다.
  • >> (오른쪽 시프트) 숫자를 오른쪽으로 특정 비트만큼 이동시킵니다. 부호가 유지됩니다.
  • >>> (무부호 오른쪽 시프트)

조건부 연산자

조건에 따라 다른 값을 반환합니다.

let age = 20;
let result = age >= 18 ? "성인" : "미성년자";
console.log(result); // "성인"

문자열 연결 연산자

+는 숫자와 문자열을 연결하는 데도 사용됩니다.

  • 문자열 연결: +
let str1 = "Hello";
let str2 = " World";
console.log(str1 + str2); // Hello World

typeof 연산자

데이터 타입을 반환합니다.

console.log(typeof 42); // "number"
console.log(typeof "Hello"); // "string"

delete 연산자

객체의 속성을 삭제합니다.

const obj = { name: "Alice", age: 25 };
delete obj.age;
console.log(obj); // { name: "Alice" }

spread 연산자 (...)

배열이나 객체를 펼칩니다.

const arr = [1, 2, 3];
const newArr = [...arr, 4];
console.log(newArr); // [1, 2, 3, 4]

연산자 우선순위

연산자는 각각 우선순위가 있으며, 우선순위가 높은 연산자가 먼저 계산됩니다.

괄호를 사용하여 연산 순서를 변경할 수 있습니다.

표현식

표현식은 하나의 값으로 평가될 수 있는 코드입니다.

  • 리터럴 표현식: 값을 직접 나타냄
  • 연산식: 연산자를 사용한 표현
  • 함수 호출식: 함수의 결과를 반환
// 리터럴 표현식
10; // 숫자 리터럴
"Hello"; // 문자열 리터럴

// 연산식
5 + 10; // 15
x * 2; // x 값에 따라 달라짐

// 함수 호출식
Math.max(10, 20); // 20