Switch Statement

Switch

javascript에서 switch문법은 if, else if를 대체 할 수 있습니다. if, else if와 비슷하지만 약간의 문법 차이가 있습니다.

사용방법

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const dayNum = new Date().getDay();
function ifDay(dayNum) {
if (dayNum === 1) {
return '월요일';
} else if (dayNum === 2) {
return '화요일';
} else if (dayNum === 3) {
return '수요일';
} else if (dayNum === 4) {
return '목요일';
} else if (dayNum === 5) {
return '금요일';
} else if (dayNum === 6 || dayNum === 0) {
return '주말';
} else {
return '알 수 없음';
};
}
console.log(ifDay(dayNum));

if, else if 조건문을 이용해서 오늘의 요일을 알 수 있습니다. 하지만 if, else if를 쓰게되면 모든 if를 순서대로 체크하고 값을 반환하게 됩니다. 하지만 switch를 이용하게 되면 해당하는 코드블록 하나만 실행하게 됩니다. 값이 일치하지 않는다면 기본(default)값이 설정됩니다. 위 값을 switch문으로 변경해보도록 하겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
const dayNum = new Date().getDay();
function switchDay(dayNum) {
switch (dayNum) {
case 1:
return '월요일';
break;
case 2:
return '화요일';
break;
case 3:
return '수요일';
break;
case 4:
return '목요일';
break;
case 5:
return '금요일';
break;
case 6:
case 0:
return '주말';
break;
default:
return '알 수 없음';
break;
};
};
console.log(switchDay(dayNum));

이렇게 switch문으로 사용 할 수 있습니다. 하지만 if, else if문, switch문 보다 속도가 더 빠르고 조건문과 비슷한 Objectsquare brackets syntax를 이용한 방법이 있습니다.

square brackets syntax를 이용한 유사 조건문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
const dayNum = new Date().getDay();
function objDay(dayNum) {
const dayObj = {
1: '월요일',
2: '화요일',
3: '수요일',
4: '목요일',
5: '금요일',
6: '주말',
0: '주말',
};
if(!dayObj[dayNum]) return '알 수 없음';
return dayObj[dayNum];
}
console.log(objDay(dayNum));

if, switch, object 세가지 조건문 성능을 여기에서 볼 수 있습니다. 간단한 조건문은 Object를 이용하는 것도 한가지 방법입니다. 감사합니다.

공유하기