시스템아 미안해

Chapter2. Program Structure 본문

책/Eloquent Javascript

Chapter2. Program Structure

if else 2025. 9. 24. 10:21

자바스크립트 프로그램은 결국 **문(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, 축약 연산자, 네이밍 규칙, 주석은 코드 가독성과 유지보수를 돕는다.