: 0개 이상의 문을 중괄호로 묶은 것
// 블록문
{
var foo = 10;
}
// 제어문
var x = 1;
if (x < 10) {
x++;
}
// 함수 선언문
function sum(a, b){
return a + b;
}
: 주어진 조건식의 평가 결과에 따라 코드 블록(블록문)의 실행을 결정
(조건식 = 불리언 값으로 평가될 수 있는 표현식)
if (조건식1) {
// 조건식1이 참이면 이 코드 블록이 실행됨
} else if (조건식2) {
// 조건식2가 참이면 이 코드 블록이 실행됨
} else {
// 조건식1과 조건식2가 모두 거짓이면 이 코드 블록이 실행됨
}
var x = 2;
// 0은 false로 취급됨
var result = x % 2 ? '홀수' : '짝수';
console.log(result); // 짝수
: 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case 문으로 실행 흐름을 옮김
switch(표현식) {
case 표현식1:
switch 문의 표현식과 표현식1이 일치하면 실행;
break;
case 표현식2:
switch 문의 표현식과 표현식2이 일치하면 실행;
break;
default:
switch 문의 표현식과 일치하는 case문이 없을 때 실행;
}
: 조건식의 평가 결과가 참인 경우 코드 블록을 실행, 그 후 조건식을 다시 평가하여 여전히 참인 경우 코드 블록을 다시 실행
(조건식이 거짓일 때까지 반복)
: 조건식이 거짓으로 평가될 때까지 코드 블록을 반복 실행
for(변수 선언문 또는 할당문; 조건식; 증감식;) {
조건식이 참인 경우 반복 실행될 문
}
for( ;; ) {
...
}
: 주어진 조건식의 평가 결과가 참이면 코드 블록을 계속해서 반복 실행
: 코드 블록을 먼저 실행하고 조건식을 평가
→ 코드 블록은 무조건 한 번 이상 실행됨
: 레이블 문, 반복문(for, for... in, for... of, while, do... while), 또는 switch 문의 코드 블록을 탈출
// foo라는 레이블 식별자가 붙은 레이블 문
foo : console.log('foo');
foo : {
console.log(1);
break foo; // foo 레이블 블록문을 탈출
console.log(2);
}
console.log('Done!');
/* 출력
1
Done!
*/
: 반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동시킴 (반복문 탈출 X)
var string = 'Hello World';
var search = 'l';
var count = 0;
for (var i=0; i < string.length; i++) {
// 'l'이 아니면 카운트를 증가시키지 않음
if (string[i] === search) {
count++;
// code
// code
// code
}
}
for (var i=0; i < string.length; i++) {
if (string[i] !== search) continue;
count++;
// code
// code
// code
}
// String.prototype.match 메서드를 사용해도 같은 동작
const regexp = new RegExp(search, 'g');
console.log(string.match(regexp).length);