「모던 자바스크립트 Deep Dive」를 읽고 새롭게 알게 된 내용
switch 문은 참, 거짓보다 다양한 case에 따라 실행할 코드 블록을 결정할 때 사용한다.
switch (표현식) {
case 표현식1:
switch 문의 표현식과 표현식1이 일치하면 실행될 문;
break;
case 표현식2:
switch 문의 표현식과 표현식2가 일치하면 실행될 문;
break;
**default**:
**switch 문의 표현식과 일치하는 case 문이 없을 때 실행될 문**;
}
만약 case 문의 마지막에 break 문을 사용하지 않으면
var month = 4;
var monthName;
switch (month) {
case 1: monthName = 'January';
case 2: monthName = 'February';
case 3: monthName = 'March';
case 4: monthName = 'April';
case 5: monthName = 'May';
case 6: monthName = 'June';
case 7: monthName = 'July';
case 8: monthName = 'August';
case 9: monthName = 'September';
case 10: monthName = 'October';
case 11: monthName = 'November';
case 12: monthName = 'December';
default: monthName = 'Invalid month';
}
console.log(monthName); // Invalid month
switch 문이 끝날 때까지 모든 case 문을 실행한다. 이를 fall through라 한다.
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;
case 2:
days = ((year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0)) ? 29 : 28;
break;
default:
console.log('Invalid month');
}
console.log(days); // 29
폴스루를 활용해 여러 개의 case 문을 하나의 조건으로 사용할 수 있다.
var string = 'Hello World.';
var search = 'l';
var count = 0;
for (var i = 0; i < string.length; i++) {
if (string[i] === search) {
count++;
// code
// code
// code
}
}
위와 같은 코드에 continue 문을 사용하지 않으면 if 문 내에 코드를 작성해야 한다.
for (var i = 0; i < string.length; i++) {
if (string[i] !== search) continue;
count++;
// code
// code
// code
}
continue 문을 사용하면 if 문 밖에 코드를 작성할 수 있다.