
제어문이란 조건에 따라 코드 블록을 실행하거나 반복 실행 할 때 사용하는 것으로, 단순히 위에서 아래로 순차적으로 진행하는 자바스크립트의 코드 흐름을 인위적으로 제어할 수 있다.
- if문은 논리적 참 또는 거짓에 따라 실행할 코드 블록을 결정한다.
- true일 경우 if문의 코드블록, false일경우 else문의 코드블록이 실행된다.
- 만약 조건식이 여러개일 경우, else if문을 사용하여 여러개의 조건식을 구분할 수 있다.
- else문과 else if 문은 옵션이기에 사용해도 되고 사용하지 않아도 된다.
- if문과 else문은 한번만 사용할수있지만, else if문은 여러번 사용할수있다.
- 만약 코드블록 내의 문이 하나뿐이라면 중괄호를 생략하여 사용할 수 있다.

if문은 삼항연산자로 바꿔 사용할 수 있다.
하지만 삼항연산자는 값으로 평가되는 표현식을 만들고, if문은 표현식이 아닌 문 이기 때문에 조건에 따라 단순히 값을 결정하여 변수에 할당할 경우 삼항연산자를 사용하는것이 좋다.
하지만, 삼항연산자를 남발할경우 가독성을 해치기 때문에 복잡한 조건을 다룰경우 if문을 사용하는것이 좋다.
<삼항연산자 예시>
//조건이 1개일 경우
let kind = number > 0 ? '양수' : '음수'
//조건이 2개일 경우
let kind = number ? (number > 0 ? '양수' : '음수') : '영'
- 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case문으로 실행을 옮긴다.
- 표현식과 일치하는 case문이 없다면 실행순서는 default문으로 이동한다. (default문은 선택사항으로 사용하거나 사용하지않을수도있다.)
- 표현식과 일치하는 case문이 있을경우 break문을 사용하여 switch문을 탈출한다.
- 표현식과 일치하는 case문 마지막에 break문을 사용하지 않는다면 문을 실행한 후 switch문을 탈출하지 않고 switch문이 끝날 때까지 이후의 모든 case문과 default문을 실행하게 되는데 이를 폴 스루라고 한다.
- case,default,break등 다양한 키워드를 사용해야하고, 폴스루가 발생하는 등 복잡하다는 단점이 있다.


조건문 정리
if문으로 해결할 수 있다면 최대한 if문을 사용하는것이 좋다.
하지만 조건이 너무 많아 if문을 사용했을때보다 switch문을 사용했을때 가독성이 좀더 좋다면 그때는 switch문을 사용하는것이 좋다.
- for문 실행시 가장먼저 변수선언문이 실행된다. (변수선언문은 단한번만 실행된다.)
- 변수 선언문이 실행이 종료되면 조건식이 실행되고, 조건식의 값이 ture일경우, 코드블록이 실행된다.
- 코드블록의 실행이 종료되면 증감식이 실행되고, 증감식에 의해 변수의 값은 +1이 된다.
- 증감식이 종료되면 다시 조건식이 실행된다.
- 조건식이 거짓으로 평가될 때까지 코드를 반복실행한다.


- 조건식의 평가가 참이면 코드블록을 계속해서 반복하고, 조건식이 거짓이 되면 코드블록을 실행하지않고 종료한다.
- 조건식이 언제나 참일경우 무한루프가 된다. 무한루프에 탈출하기위해선 if문 으로 탈출조건을 만들어 break문을 사용해 탈출해야한다.


- 코드블록을 먼저 실행하고 조건식을 평가한다.
- 즉, 코드블록은 무조건 한번이상 실행된다.


반복문 정리
- for문은 반복횟수가 명활할때 사용하고, while문은 반복횟수가 불명확할때 주로 사용한다.
- 반복문의 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동시킨다.
- break문처럼 반복문을 탈출하지 않는다.
