2025-01-26T02:15:33
This commit is contained in:
142
doc/04_연산자.md
Normal file
142
doc/04_연산자.md
Normal file
@@ -0,0 +1,142 @@
|
||||
# 연산자와 표현식
|
||||
|
||||
자바스크립트에서 **연산자(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
|
||||
```
|
||||
Reference in New Issue
Block a user