if else와 비슷한 역할을 하긴 하는데 이건 comparison 보다는 === 위주이다.
예시 코드는 아래와 같다.
const day = 'monday';
switch(day) {
case 'monday': //day === 'monday'
console.log('Plan course structure');
console.log('Go to coding meetup');
break;
case 'tuesday':
console.log('Prepare theory videos');
break;
case 'wednesday':
case 'thursday':
console.log('Write code explames');
break;
case 'friday':
console.log('Record videos');
break;
case 'saturday':
case 'sunday':
console.log('Enjoy the weekend :D')
break;
default:
console.log('Not a valid day!')
}
break;
를 써주지 않으면 다음 case로 넘어가서 그 case의 코드도 실행된다.
위의 코드를 if else 문으로 바꾸어보자.
const day = 'monday';
if (day === 'monday') {
console.log('Plan course structure');
console.log('Go to coding meetup');
} else if (day === 'tuesday') {
console.log('Prepare theory videos');
} else if (day === 'wednesday' || day === 'thursday') {
console.log('Write code explames');
} else if (day === 'friday'){
console.log('Record videos');
} else if (day === 'saturday' || day === 'sunday'){
console.log('Enjoy the weekend :D')
} else {
console.log('Not a valid day!')
}
switch문은 요즘에는 점점 더 안쓰이고 있지만 보기가 더 좋은 이런 케이스에서는 쓸 수도 있다.
statement
는 하나의 완전한 문장으로 볼 수 있다. 뒤에 세미콜론(;)을 붙여주는 것이며, 값이 아닌 어떤 동작을 수행하는 코드이다.
expression
은 값을 생성하는 코드를 말한다.
예를 들어,
3+4
1991
true && false && !false
위의 코드처럼 값이 생성되는 것은 모두 expression이다. 문장처럼 동작을 수행하는 것은 statement이다. 예를 들어 if 문이 그 예이다.
템플릿 리터럴(template literal)에는 expression만 들어갈 수 있고, statement는 들어갈 수 없다.
const me = 'Jonas';
console.log (`I'm ${2037 - 1991} years old ${me}`)
위의 코드처럼 expression들은 ${}
안에 들어갈 수 있지만 statement는 들어갈 수 없다!