해당 포스팅은 위키북스의 "모던 자바스크립트 Deep Dive"라는 책을 독학하며 기록하는 글입니다.
0개 이상의 문을 중괄호로 묶은 것으로, 코드 블록 또는 블록이라고 부른다.
문의 끝에는 ;
을 붙이는게 일반적이지만, 블록문은 언제나 문의 종료를 의미하는 자체 종결성을 갖기 때문에 블록문의 끝에는 ;
을 붙히지 않는다.
조건문은 주어진 조건식의 평가 결과에 따라 코드 블록의 실행을 결정한다. 이때, 조건식은 불리언 값으로 평가될 수 있는 표현식이여야 한다. 조건식의 종류에는 다음 두 가지가 있다.
if ... else 문의 사용법은 다음과 같다.
if(조건식) {
//조건식이 true일 때 실행될 문들
} else {
//조건식이 false일 때 실행될 문들
}
이 경우는 조건이 하나인 경우에 사용하는 것이고, 만약 조건이 여러 개라면 else if
를 사용해서 표현할 수 있다.
if(조건식1) {
//조건식1이 true일 때 실행될 문들
} else if(조건식2) {
//조건식1은 false이지만 조건식2가 true일 때 실행될 문들
} else {
//조건식1과 조건식2 모두 false일 때 실행될 문들
}
또한 else if의 개수는 마음대로 조절할 수 있다.
switch문의 사용법은 다음과 같다.
switch(표현식) {
case 값1:
//표현식을 평가한 값이 값1과 같을 때 실행될 문들
break;
case 값2:
//표현식을 평가한 값이 값2과 같을 때 실행될 문들
break;
case 값3:
//표현식을 평가한 값이 값4과 같을 때 실행될 문들
break;
default:
//표현식을 평가한 값이 해당 case중에 없을 때 실행될 문들
}
if ... else 문은 논리적 참, 거짓으로 실행할 코드 블록을 결정하고 switch 문은 다양한 상황에 따라 실행할 코드 블록을 결정할 때 사용한다.
또한 break
문이 없다면 default
case나 그 다음 break
를 만날 때까지 다음 case의 문들을 모두 실행하므로 각 case에 대해서는 break
를 달아주도록 하자.
또는 여러 case에 대해서 같은 문들을 실행하고 싶을 때는 의도적으로 break
를 생략하는 경우도 있는데, 이를 폴스루라고 한다.
반복문은 조건식을 평가하여 값이 true인 경우에만 코드 블록를 실행하며, 실행 후 다시 조건식을 평가하여 false가 나올 때까지 해당 과정을 반복한다.
for문의 사용법은 다음과 같다.
for(변수 선언문 또는 할당문; 조건식; 증감식) {
//조건식이 true인 경우 실행될 문들
}
for(var i = 0; i < 5; i++) {
console.log(i);
}
//콘솔창에 0, 1, 2, 3, 4가 출력된다.
while문의 사용법은 다음과 같다.
while(조건식) {
//조건식이 true인 경우 실행될 문들
}
var i = 0;
while(i < 3) {
console.log(i);
i++;
}
//콘솔창에 0, 1, 2가 출력된다.
while문의 경우 증감식, 또는 if문과 break문을 함께 써서 일정 조건을 만족하면 while문을 탈출할 수 있게 해줘야 한다.
do ... while문의 사용법은 다음과 같다.
do {
//실행될 문들
} while(조건식)
var i = 0;
do {
console.log(i);
i++;
} while(i < 3);
//콘솔창에 0, 1, 2가 출력된다.
처음 한 번은 무조건 코드 블록이 실행된다는 점이 while문과의 차이이다.
break문은 해당 코드 블록을 탈출한다. 정확히 말하면 레이블문, 반복문, switch문의 코드 블록을 탈출한다.
여기서 레이블문이란 식별자가 붙은 문들을 의미하며 switch문의 각 case들도 사실은 레이블문이다.
레이블명(또는 식별자명): for(var i = 0; i < 5; i++) {
//조건식이 true일 때 실행될 문들
}
//이 경우 for문에 레이블명을 붙힌 것이다.
break문을 사용할 때 단독으로 사용하면 해당 코드 블록을 탈출하지만, 레이블과 같이 사용하면 해당 레이블명을 가진 코드 블록을 탈출하게 된다.
예를 들어 이중 for문에서 break
를 하면 첫 번째 for문으로 나가게 되지만, 첫 번째 for문에 레이블명을 부여하고 break 레이블명
을 하게 되면 전체 for문 밖으로 탈출하게 된다.
continue문의 경우 진행 중인 코드 블록의 실행을 멈추고, 바로 증감식으로 이동한다.
for(var i = 0; i < 10; i++) {
if(i % 2) continue;
console.log(i);
}
//콘솔창에 0, 2, 4, 6, 8가 출력된다.
//이유: 홀수인 경우에는 continue가 실행되어 그 다음 문인
//console.log(i)를 실행하지 않고 증감식으로 이동하기 때문