시스템아 미안해
Chapter2. Program Structure 본문
자바스크립트 프로그램은 결국 **문(statement)**들의 집합이다. 문은 **표현식(expression)**으로 이루어져 있고, 표현식은 또 다른 표현식들을 조합해 만든다. 이 장은 프로그램을 조직하는 기본 문법을 다룬다.
1. 표현식과 문 (Expressions & Statements)
- 표현식: 값을 만들어내는 코드 (22, "hi", 3 + 5)
- 문: 프로그램의 독립된 실행 단위. 보통 세미콜론(;)으로 끝난다.
1;
!false;
이건 쓸모없는 프로그램이다. 값만 만들고 사용하지 않으면 아무 효과가 없다.
2. 바인딩 (Bindings)
- 값은 사라지기 마련이므로 **바인딩(변수)**으로 잡아둔다.
- let, const, var로 선언한다.
let mood = "light";
mood = "dark";
- 바인딩은 상자라기보다는 촉수. 값을 잡아두고, 다른 값으로 옮길 수도 있다.
- undefined: 값이 없는 상태.
3. 환경 (Environment)
- 현재 존재하는 모든 바인딩들의 집합.
- 프로그램 시작 시 이미 여러 표준 바인딩(console, Math 등)이 들어있다.
4. 함수 (Functions)
- 함수는 값으로 존재하고, 호출(call)하면 실행된다.
- 인수를 받을 수 있고, 값을 반환할 수도 있다.
console.log(Math.max(2, 4)); // 4
5. 제어 흐름 (Control Flow)
- 기본적으로 문은 위에서 아래로 순서대로 실행된다.
- 특정 조건에 따라 분기(branch)하거나 반복(loop)시킬 수 있다.
조건문 (if / else if / else)
if (num < 10) {
console.log("Small");
} else if (num < 100) {
console.log("Medium");
} else {
console.log("Large");
}
반복문 (while / do / for)
- while: 조건이 true인 동안 반복
- do ... while: 최소 한 번 실행 후 조건 검사
- for: 초기화, 조건, 업데이트를 한 줄에 모아 쓸 수 있음
for (let i = 0; i < 5; i++) {
console.log(i);
}
break
- 즉시 루프 종료
for (let n = 20; ; n++) {
if (n % 7 == 0) {
console.log(n); // 21 break;
}
}
6. 축약된 연산 (Updating Bindings)
- x = x + 1 → x += 1 → x++
- x = x * 2 → x *= 2
7. switch 문
- 다수의 분기를 처리할 때 사용
switch (weather) {
case "rainy":
console.log("Umbrella needed");
break;
case "sunny":
console.log("Wear light clothes");
break;
default:
console.log("Unknown weather");
break;
}
8. 네이밍 규칙 (Capitalization)
- 여러 단어 바인딩 이름 → **카멜 케이스(camelCase)**가 표준
- 생성자 함수 → 첫 글자를 대문자로 쓰는 관례(Number, Date)
9. 주석 (Comments)
- 한 줄 주석: //
- 여러 줄 주석: /* ... */
// 한 줄 설명 /* 여러 줄 설명 계속됨 */
10. 요약
- 프로그램은 문(statement)으로 구성된다.
- 바인딩은 값을 잡아두는 도구다.
- 환경(environment)은 기본 바인딩을 담고 있다.
- 함수는 값처럼 쓰이며, 호출 시 실행된다.
- 제어 흐름은 조건문과 반복문으로 제어한다.
- switch, 축약 연산자, 네이밍 규칙, 주석은 코드 가독성과 유지보수를 돕는다.
'책 > Eloquent Javascript' 카테고리의 다른 글
| Chapter 6. The secret life of objects (0) | 2025.10.01 |
|---|---|
| Chapter 5. 고차 함수(Higher-Order Functions) (0) | 2025.09.30 |
| Chapter 4. Data Structure: Objects And Arrays (0) | 2025.09.29 |
| Chapter 3. Functions (0) | 2025.09.25 |
| Chapter1. Values, Types, and Operators (0) | 2025.09.23 |