JS에서
switch
문을 사용은 필수사항이 아니다.
If...else
라는 아주 강력한 조건문이 있기 때문이다.
하지만 위의 이유로 인해서 switch
문을 몰라도 된다?
그건 매우 안좋은 생각이다.
- 우리는 많은 협업으로 다른 이의 코드를 읽을때 그리고 자신의 오래된 코드를 읽을때 정리가 안되어 있으면 많은 시간을 들이고, 이해하는데 어려움을 느낀다.
- 함수형 프로그래밍에서 선언형 함수를 강조하는 이유도 위와 같다.
switch
문은 특정 상황(조건문이 매우 많을 때)에서 if...else
문 보다 가독성이 압도적으로 뛰어나다.
아래 4가지 마법을 읽는데 참고하기 쉽게 기본적인 표현식을 작성해봤다.
- 참고자료: 모던자바스크립트 Deep Dive - 이웅모 지음
switch (표현식) { case 표현식1: 표현식과 표현식1이 일치하면 실행되는 문; break; case 표현식2: 표현식과 표현식2가 일치하면 실행되는 문; break; default: 표현식과 일치하는 case 문이 없을때 실행되는 문; }
이름부터 switch
문이기 때문에 switch
가 등장한다.
switch
의 괄호에는 표현식이 들어가고 이 표현식으로 분기가 나뉘게 된다. switch
문의 괄호 안에 들어있는 표현식에서 하나의 분기가 되어주는 이정표라고 생각하면 된다.switch
의 괄호안에 들어있는 표현식과 각각의 case
에 들어있는 표현식이 일치하는 것을 찾으면 :
다음에 있는 문이 실행된다.if...else
문의 break
와 일치한다.break
문은 탈출문으로 break
를 만나게 되면 switch
문이 중단된다.default
문에는 break
문을 생략한다. 그 이유는 일반적으로 default
문은 switch
문의 맨 마지막에 위치함으로 별도의 break
문이 필요하지 않다.default
문은 필수가 아니다. 선택사항이지만 에러핸들링을 위해서라도 사용하는 것을 추천한다. (예시로, 일치하는 것이 없으면 console.log('일치하는 값이 없습니다.')
)default
문은 가독성을 위해 모든 case
가 끝난 후 작성하는 것을 추천한다.