8. 제어문
- 조건에 따라 코드 블록을 실행하거나(조건문) 반복 실행(반복문) 할 때 사용
8.1. 블록문
- 블록문은 0개 이상의 문을 중괄호로 묶음, 코드 블록 또는 블록이라고도 함
- 블록문을 하나의 실행 단위로 취급
- 일반적으로 제어문이나 함수를 정의할 때 사용함
- 자체 종결성을 갖기 때문에 세미콜론 생략
8.2. 조건문
- 주어진 조건식의 평가 결과에 따라 코드 블록(블록문)의 실행을 결정함
- 조건식은 불리언 값으로 평가될 수 있는 표현식
8.2.1. if ... else 문
- 주어신 조건식의 평과 결과에 따라 true인 경우 if 문의 코드 블록이 실행, false인 경우 else 문의 코드 블록이 실행됨
- 조건에 따라 실행될 코드 블록을 추가하려면 else if 문 사용
- else if, else 는 옵션으로 사용하지 않아도 됨
8.2.2. switch 문
- 주어신 표현식을 평가하여 일치하는 case 문으로 실행 흐름을 옮김
- switch 문의 표현식과 일치하는 case 문이 없다면 default 문으로 이동
- 불리언보다는 문자나 숫자 값 일치 여부인 경우가 대부분
- 폴스루(fall through): break 문이 없는 경우 다음 case 문이 연속으로 실행됨
- default는 가장 마지막에 위치하기 때문에 break 생략 가능
8.3. 반복문
- 조건문의 평가 결과가 거짓일 때까지 참인 동안 코드 블록을 반복하여 실행함
- for 문, while 문, do ... while 문
- 배열 객체에서 사용 가능한 forEach, for ... in, for ... of 문 등
8.3.1. for 문
- for 문은 거짓으로 평가될 때까지 코드 블록을 반복 실행
- for (변수 선언문 또는 할당문; 조건식; 증감식) { 반복 실행될 문 }
- for (;;) { ... } : 무한 루프
- 중첩 for 문도 가능
8.3.2. while 문
- 참이면 코드 블록을 반복 실행
- for 문은 반복 횟수가 명확할 때, while 문은 불명확할 때 주로 사용
8.3.3. do ... while 문
8.4. break 문
8.5. confinue 문
- 반복문의 실행 흐름에서 현 지점을 건너 뛰고 계속 실행함 (탈출하지 않음)
for (var i = 0; i < string.length; i++) {
if (string[i] !== search) continue;
count++;
}
[출처] 모던 자바스크립트, Deep Dive