< 모든 내용을 세세하게 정리하지 않고, 아주 기본적인 것은 생략하기도 합니다. >
제어문은 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용
블록문
- 0개 이상의 문을 중괄호로 묶은 것
- 코드 블록 또는 블록이라고 부름
- 자바스크립트는 블록문을 하나의 실행 단위로 취급
- 문의 끝에는 세미콜론을 붙이는 것이 일반적이지만, 블록문은 자체의 종결성을 갖기 때문에 세미콜론을 붙이지 않는다
조건문
- 평가 결과에 따라 코드 블록의 실행을 결정
if문
- 조건식은 불리언 값으로 평가되어야 함. 아닌 경우엔 불리언 값으로 강제 변환
- 코드 블록 내의 문이 하나라면 중괄호 생략 가능
var num = 2;
var kind;
if(num>0){
kind = '양수';
}
if(num>0) kind = '양수';
- 대부분의 if문은 삼항 조건 연산자로 바꿔 쓸 수 있다.
switch문
- 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case문으로 실행 흐름을 옮긴다
- switch문의 표현식과 일치하는 case문이 없다면 실행 순서는 default문으로 이동, default문의 사용은 선택사항
- 조건식은 불리언 값보다는 문자열이나 숫자인 경우가 많다
- 폴스루 : 문을 실행한 후 switch문을 탈출하지 않고 switch문이 끝날 때까지 이후의 모든 case문과 default문을 실행하는 것
- 보통은 case문에 해당하는 문의 마지막에 break문을 넣어 switch문을 탈출
- 폴스루를 이용해 여러 개의 case문을 하나의 조건으로 사용할 수 있음
var year = 2000;
var month = 2;
var days = 0;
switch (month) {
case 1 : case 3 : case 5 : case 7 : case 8 : case 10 : case 12 :
days = 31;
break;
case 4 : case 6 : case 9 : case 11 :
days = 30;
break;
case 2 :
days = ((year % 4 === 0 && year % 100 !== 0 ) || (year % 400 === 0)) ? 29 : 28;
break;
default:
console.log('Invalid month');
}
반복문
- 조건식의 평가 결과가 참인 경우 코드 블록 실행, 그 후 조건식을 다시 평가하여 참인 경우 코드 블록 다시 실행하는 일을 조건식이 거짓일 때까지 반복
for문
- 조건식이 거짓으로 평가될 때까지 코드 블록을 반복 실행, 반복 횟수가 명확할 때 주로 사용
for (var i=0; i<2; i++){
console.log(i);
}
// 0
// 1
while문
- 조건식의 평가 결과가 참이면 코드 블록을 반복 실행, 반복 횟수가 불명확할 때 주로 사용
- 조건식의 평가 결과가 거짓인 경우 코드 블록을 실행하지 않고 종료
- 조건식의 평가 결과가 불리언 값이 아니면 불리언으로 강제 변환
- 무한루프에서 탈출하기 위해서는 코드 블록 내에 if문으로 탈출 조건을 만들고 break 문으로 코드 블록 탈출
// 무한루프
while (true) {
...
if ( ) break;
}
do...while문
- 코드 블록을 먼저 실행하고 조건식을 평가
do {
...
} while (조건문)
반복문을 대체할 수 있는 다양한 기능
- forEach 메서드, for...in문, for...of문
break문
- 레이블문, 반복문 또는 switch문의 코드 블록을 탈출. 이 외에 사용 시 SyntaxError(문법 에러) 발생
- 레이블문 : 식별자가 붙은 문, 프로그램의 실행 순서를 제어 하는데 사용. 레이블 문을 탈출하려면 break 문에 레이블 식별자를 지정
- 중첩된 for문의 내부 for문에서 외부 for문으로 한번에 탈출할 때 사용.
- 프로그램의 흐름을 복잡하게 하기 때문에 일반적으로 권장하지 않음.
foo : console.log('foo');
// 중괄호로 묶어서 사용하는 경우
foo : {
console.log(1);
break foo;
}
continue문
- 반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동
- 반복문을 탈출하지는 않음
var string = 'Hello';
var search - 'l';
var count = 0;
for ( var i = 0; i<string.length; i++) {
if (string[i] !== search) continue;
count++; // continue 문이 실행되면 이 문은 실행되지 않는다.
}
출처
- 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리
'JavaScript' 카테고리의 다른 글
[JS] 모던 자바스크립트 - 06. 객체 리터럴 (0) | 2021.08.31 |
---|---|
[JS] 모던 자바스크립트 - 05. 타입 변환과 단축 평가 (0) | 2021.08.29 |
[JS] 모던 자바스크립트 - 03. 연산자 (0) | 2021.08.28 |
[JS] 모던 자바스크립트 - 02. 데이터 타입 (0) | 2021.08.28 |
[JS] 모던 자바스크립트 - 01. 변수, 네이밍 컨벤션, 표현식과 문 (0) | 2021.08.27 |