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

8.1 블록문

<aside> 💡 0개 이상의 문을 중괄호로 묶은 것. 코드 블록 또는 블록이라고 함

</aside>

// 블록문
{
	var foo = 10;
}

// 제어문
var x = 1;
if (x < 10) {
	x++;
}

// 함수 선언문
function sum(a+b) {
	return a + b;
}

8.2 조건문

if-else문

switch문

<aside> 💡 Guard Pattern

모든 if-else 문은 guard pattern으로 대체할 수 있다.

</aside>

if ( a < 3) {
  ... 3 ...
} else if ( a < 5 ) {
  ... 5 ...
} else {
  ... etc ...
}

else-if 문은 코드가 잘 읽히지 않는다는 단점이 있음

function guardPattern() {

	if ( a < 3) {
		return ... 3 ...
	}

	if ( a < 5 ) [
		return ... 5 ...	
	}

	return ... etc ...
}

8.3 반복문

for, while, do-while문이 있다.

for ( ;; ) { ... } // 무한 루프
while (true) { ... } // 무한 루프