Skip to content

Latest commit

 

History

History
85 lines (64 loc) · 2.69 KB

09. Control flow.md

File metadata and controls

85 lines (64 loc) · 2.69 KB

09. Control flow

9.1 Block Statement

{
    문장1;
    문장2;
}
  • **블록문(block/compound statement)**은 0개 이상의 문을 중괄호 {}로 묶은 것이다. 코드 블록 혹은 블록이라고 한다.
  • 자바스크립트는 블록문을 하나의 실행 단위로 다룬다.
  • 문의 끝에는 ;을 붙이는 것이 일반적이나 블록문은 언제나 문의 종료를 의미하는 자체 종결성을 가지므로 ;을 붙이지 않는다.
  • ECMAScript2015 이전 자바스크립트는 블록 범위를 가지지 않았으므로, 블록 내부에 var 키워드로 선언된 변수는 블록 범위가 아니라 함수 혹은 전역 범위를 가진다. 블록 범위 지역 변수를 선언하기 위해서는 let 혹은 const 키워드로 변수를 선언한다. 변수의 스코프 참고

9.2 Conditional Statement

  • **조건문(conditional staetment)**은 **조건식(conditional expression)**의 평가 결과에 따라 블록문을 실행한다.
  • 조건식은 참이나 거짓으로 평가될 수 있는 표현식이다.
  • 조건문에는 두 가지 종류가 있다.
    • if... else
    • switch

9.2.1 if statement

if (조건식) {
    코드블록1
} else {
    코드블록2
}
  • 조건식이 참으로 평가되면 코드블록1을 실행한다.
  • 그렇지 않다면 코드블록2를 실행한다.
  • else문은 옵션이다.
if (조건식1) {
    코드블록1
} else if (조건식2) {
    코드블록2
} else {
    코드블록3
}
  • 조건식1이 참으로 평가되면 코드블록1을 실행한다.
  • 그렇지 않고 조건식2으로 참으로 평가되면 코드블록2를 실행한다.
  • 그렇지 않은 경우, 코드블록3을 실행한다.
  • else if문은 옵션이다.
if (조건식)
    문장;
  • 코드 블록 내 문장이 한 개라면 {}을 생략할 수 있다.

9.2.2 switch statement

switch (expr) {
    case 라벨1:
        문장1;
        [break;]
    case 라벨2:
        문장2;
        [break;]
    default:
        문장3;
        [break;]
}
  • expr을 평가하고 expr과 일치하는 라벨을 가진 case문으로 실행의 흐름을 옮긴다.
  • 일치하는 라벨이 없다면 default문의 문장을 실행한다. default문의 break문은 생략하는 것이 일반적이다. 또한 default문은 생략할 수 있다.
  • break문은 switch문을 벗어나게 한다. 이것을 생략할 경우 다음 문장을 게속 수행하여 다른 case의 라벨도 검사하게 된다. 이것을 **폴스루(fall through)**라고 한다.