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

143 lines
3.7 KiB
Markdown

# 연산자와 표현식
자바스크립트에서 **연산자(Operator)**와 **표현식(Expression)**는 데이터를 처리하고 동작을 수행하는 기본 구성 요소입니다. 연산자는 값을 조작하거나 연산을 수행하는 기호이며, 표현식은 하나의 값으로 평가될 수 있는 코드입니다.
## 연산자
연산자는 특정 작업을 수행하기 위해 사용하는 기호나 키워드입니다.
자바스크립트의 연산자는 크게 다음과 같이 분류할 수 있습니다:
### 산술 연산자
숫자 데이터를 연산할 때 사용됩니다.
* 덧셈: +
* 뺄셈: -
* 곱셈: *
* 나눗셈: /
* 나머지: %
* 거듭제곱: **
* 증가: ++
* 감소: --
```javascript
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
```
### 할당 연산자
변수에 값을 할당하거나 연산 결과를 저장할 때 사용합니다.
* 단순 할당: =
* 복합 할당: +=, -=, *=, /=, %=
```javascript
let a = 10;
a += 5; // a = a + 5; 와 같음
console.log(a); // 15
```
### 비교 연산자
두 값을 비교하고 결과를 불리언 값(true 또는 false)으로 반환합니다.
* 같음: == (형 변환 후 비교), === (형 변환 없이 비교)
* 다름: !=, !==
* 크다: >
* 작다: <
* 크거나 같다: >=
* 작거나 같다: <=
```javascript
let b = 10;
console.log(b == "10"); // true (형 변환 후 비교)
console.log(b === "10"); // false (형 변환 없이 비교)
```
### 논리 연산자
불리언 값을 조합하거나 조작할 때 사용됩니다.
* AND: &&
* OR: ||
* NOT: !
```javascript
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으로 채워집니다.
* `>>` (오른쪽 시프트) 숫자를 오른쪽으로 특정 비트만큼 이동시킵니다. 부호가 유지됩니다.
* `>>>` (무부호 오른쪽 시프트)
### 조건부 연산자
조건에 따라 다른 값을 반환합니다.
```javascript
let age = 20;
let result = age >= 18 ? "성인" : "미성년자";
console.log(result); // "성인"
```
### 문자열 연결 연산자
`+`는 숫자와 문자열을 연결하는 데도 사용됩니다.
* 문자열 연결: +
```javascript
let str1 = "Hello";
let str2 = " World";
console.log(str1 + str2); // Hello World
```
### typeof 연산자
데이터 타입을 반환합니다.
```javascript
console.log(typeof 42); // "number"
console.log(typeof "Hello"); // "string"
```
### delete 연산자
객체의 속성을 삭제합니다.
```javascript
const obj = { name: "Alice", age: 25 };
delete obj.age;
console.log(obj); // { name: "Alice" }
```
### spread 연산자 (...)
배열이나 객체를 펼칩니다.
```javascript
const arr = [1, 2, 3];
const newArr = [...arr, 4];
console.log(newArr); // [1, 2, 3, 4]
```
### 연산자 우선순위
연산자는 각각 우선순위가 있으며, 우선순위가 높은 연산자가 먼저 계산됩니다.
괄호를 사용하여 연산 순서를 변경할 수 있습니다.
## 표현식
표현식은 하나의 값으로 평가될 수 있는 코드입니다.
* 리터럴 표현식: 값을 직접 나타냄
* 연산식: 연산자를 사용한 표현
* 함수 호출식: 함수의 결과를 반환
```javascript
// 리터럴 표현식
10; // 숫자 리터럴
"Hello"; // 문자열 리터럴
// 연산식
5 + 10; // 15
x * 2; // x 값에 따라 달라짐
// 함수 호출식
Math.max(10, 20); // 20
```