본문 바로가기

JavaScript

[JS] 모던 자바스크립트 - 04. 제어문

728x90
반응형

< 모든 내용을 세세하게 정리하지 않고, 아주 기본적인 것은 생략하기도 합니다. >

 

제어문은 조건에 따라 코드 블록을 실행하거나 반복 실행할 때 사용

블록문


- 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 - 자바스크립트의 기본 개념과 동작 원리

728x90
반응형