블록문
자바스크립트는 블록문을 하나의 실행 단위로 취급한다.
문의 종료를 의미하는 자체 종결성을 갖기 때문에 블록문의 끝에는 세미콜론을 붙이지 않는다.
조건문
자바스크립트는 C와 마찬가지로 if...else문과 switch문 두 개를 제공한다.
- if...else 문
- if...else 문의 조건식은 불리언 값으로 평가되어야 한다
- if else 사이에 else if 문을 사용하면 된다
- 코드 내의 블록 문이 하나뿐이라면 중괄호를 생략하면 된다
var kind;
if (num > 0) kind = "양수";
else kind = "영";
- if...else 문은 삼항조건연산자로 바꿔 쓸 수 있다. 삼항조건 연산자 표현식은 값처럼 사용할 수 있기 때문에 변수에 할당할 수 있다. 하지만 if...else 문은 표현식이 아닌 문이다. 이것은 어떠한 말을 의미하는지는 알 수 있겠지...?
- switch 문
- switch 문은 주어진 표현식을 평가하여 그 값과 일치하는 표현식을 갖는 case 문으로 실행 흐름을 옮긴다
- switch 문은 불리언 값보다는 문자열이나 숫자 값인 경우가 많다
- case 문 당 break를 해줘야 원하는 값이 실행된다
- switch 문의 표현식과 일치하는 case 문이 없다면 default 문으로 이동한다
- default 문에는 break 문을 생략하는 것이 일반적이다
폴스루: break 문을 사용하지 않으면 모든 case가 순서대로 실행되게 된다.
var year = 2000;
var month = 2;
var days = 0;
switch (month) {
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
days = 31;
break;
case 4: case 6: case 9: case 11:
days = 30;
break;
default: console.log('Invalid month');
반복문
- for 문
- for 문은 조건식이 거짓으로 평가될 때까지 코드 블록을 반복 실행한다
for (변수 선언문 또는 할당문; 조건식; 증감식)
{ 조건식이 참인 경우 반복 실행될 문 }
- while 문
- for 문이 반복 횟수가 명확할 때 주로 사용하고 while 문은 반복 횟수가 불명확할 때 주로 사용한다
- break를 사용해 반복문을 나올 수 있다
while(true) {...}
- do while 문
- do...while 문은 코드 블록을 먼저 실행하고 조건식을 평가한다
do {...} while (조건식)
break문
- break 문은 반복문, switch문, 그리고 레이블 문에서 사용이 가능하다
- 레이블 문은 식별자가 붙은 문이다
foo: console.log('foo');
outer: for (...) {
for (...) {
if(...) break outer
}
}
- 위에서 보듯 'break 레이블명'을 입력하면 해당 for문 뿐만 아니라 레이블 전체를 빠져나온다
continue문
- 코드 블록 실행을 현 지점에서 중단하고 반복문의 증감식으로 실행 흐름을 이동시킨다
- 반복문 자체를 탈출하지는 않는다