if문
if문은 if (condition) statement1 else statement2
으로 사용한다. condition에는 조건이 들어가며, 조건이 성립할 경우 statement1을 수행하고 그렇지 않다면 statement2를 수행한다. 다음 예시를 보자.
1 | if(i == 20180308) { |
위의 예시에서는 else if를 사용했는데, if의 조건은 성립하지 않지만 else if의 조건을 성립할 경우 else 대신 수행한다.
switch-case문
if문과 비슷하며 다음과 같이 사용할 수 있다.
1 | var i = 25 |
라인 5, 8, 11에 있는 break
문을 넣지 않는다면 break를 만나는 곳까지 쭉 실행하게 된다. 고로, switch-case문에서는 break
를 잊지 않도록 조심해야 한다.
do-while문
do-while은 종료 조건을 평가하기 전 루프를 실행한다. 루프 본문은 최소 한 번 이상 실행된다. 실제로는 다음과 같이 사용한다.
1 | var i = 0; |
i += 2
는 종료 조건인 i < 10
을 실행하기 전 먼저 수행된다.
while문
while은 조건을 먼저 평가하고 그 이후 루프를 실행한다. 실제 사용은 다음과 같다.
1 | var i = 0; |
이 예제에서는 i < 10
일 때에만 i += 2
가 실행된다.
for문
for문도 평가 후 루프를 실행한다. for문에서는 루프에 들어가기 전 변수를 초기화할 수 있으며, 루프 후의 코드도 지정할 수 있다. 실제 사용은 다음과 같이 한다.
1 | var count = 10; |
변수 초기화는 2 라인의 var i = 0
이고, 루프 후의 코드는 동일 라인의 i++
라고 할 수 있다. 변수 초기화, 조건, 그리고 루프 후의 코드는 생략 가능하다. 만약 다음과 같이 모두를 생략하면 어떻게 될까?
1 | var message = "엄청나게 졸리다"; |
for (;;)
는 무한 루프[1]를 의미한다. 이 코드는 무한정 message가 담긴 alert를 띄우게 된다.
for-in문
객체의 프로퍼티를 순회하는데 사용하는 엄격한 반복문이다. 문법은 다음과 같다.
1 | for (변수 in 객체) { |
예제를 보자.
1 | var array = [10, 11, 12]; |
위 코드의 실행 결과는 다음과 같다.
1 | name: 0; value: 10 |
✯ 이 포스트의 모든 내용은 프론트엔드 개발자를 위한 자바스크립트 프로그래밍(인사이트) 책을 참고하여 작성되었습니다.
while(1), while(true), for(;;)는 모두 무한 루프이다. ↩︎