28_[vanillajs]조건문 더 스마트하게 쓰기
조건문 더 스마트하게 쓰기
특정 값이 여러 값 중 하나인지 확인할 경우
- 여러 값을 배열에 넣고
- 배열.includes 함수로 포함되어 있는지 확인하기
function isAnimal(text){
const animals = ['고양이','멍멍이','거북이','너구리'];
return animals.includes(text);
}
console.log(isAnimal('고양이'));
console.log(isAnimal('멍멍이'));
-화살표 함수 이용
const isAnimal=(text)=>(['고양이','멍멍이','거북이','너구리'].includes(text));
console.log(isAnimal('고양이'));
console.log(isAnimal('멍멍이'));
⚠️ 코드가 간결하면서도 어떤 역할을 하는지 알 수 있어야 좋은 코드!
특정 값에 따라 다른 결과를 반환하는 경우
- 객체를 이용하여 값에 따른 결과를 key-value로 묶어주기
- 객체의 매개변수에 따른 동작 구현시키기 객체[매개변수]
function getSound(animal){
const pairs={
'개':'멍멍!',
'고양이':'야옹!',
'참새':'짹짹!',
'비둘기':'구구구'
};
const task=tasks[animal];
if(!task){
console.log('...?');
return;
}
task();
}
console.log(getSound('개'));//멍멍!
console.log(getSound('고양이'));//야옹!
console.log(getSound('참새'));//짹짹!
console.log(getSound('비둘기'));//구구
console.log(getSound('노트북'));//...?
특정 값에 따른 코드 실행
- 객체를 이용하여 값에 따른 함수를 key-value로 묶어주기
- 단축 평가 논리 계산법을 이용
function makeSound(animal){
const tasks={
'개':()=>{console.log('멍멍')},
고양이()
{
console.log('야옹')
},
'참새':function(){
//익명함수
//그런데 이것보다는
//고양이 함수처럼 최신 문법처럼
//하는 것이 차라리 나음
console.log('짹짹!');
},
비둘기(){
console.log('구구!');
}
};
return tasks[animal]||'...?';
}
makeSound('개');//멍멍!
makeSound('고양이');//야옹!
makeSound('참새');//짹짹!
makeSound('비둘기');//구구구!
makeSound('고양희');//...?