Javascript
Javascript - 조건문 스마트하게 쓰기
Starters
2020. 9. 5. 21:36
1. 특정 값을 여러값들 중에 있는지 확인해야 하는 상황에서
function isAnimal(text){
return (text === '고양이' || text === '개'
|| text === '거북이' || text === '너구리');
}
console.log(isAnimal('개'));
console.log(isAnimal('노트북'));
=> true
=> false
이걸 배열로 만들어 사용하면(includes() 함수),
function isAnimal(text){
const animals = ['고양이', '개', '거북이', '너구리'];
return animals.includes(text); // 배열 내장함수 includes() -> 배열에 값 유무 확인하고 boolean값 반환
}
console.log(isAnimal('개'));
console.log(isAnimal('노트북'));
화살표 함수로 만들어 사용
const isAnimal = text => ['고양이', '개', '거북이', '너구리'].includes(text);
console.log(isAnimal('개'));
console.log(isAnimal('노트북'));
2. 주어진 값에 따라 다른 값을 반환해야 하는 상황
function getSound(animal){
if(animal === '개') return '멍멍!';
if(animal === '고양이') return '야옹~';
if(animal === '참새') return '짹짹';
if(animal === '비둘기') return '구구구구';
return '...?';
}
console.log(getSound('개')); => 멍멍!
console.log(getSound('비둘기')); => 구구구구
console.log(getSound('인간')); => ...?
스위치문 써도 되지만 객체 사용하면 더 좋다
function getSound(animal){
const sounds = {
'개': '멍멍!',
'고양이': '야옹~',
'참새': '짹짹',
'비둘기': '구구구구'
};
return sounds[animal] || '...?'; // 단축 평가 논리 계산법 사용
}
console.log(getSound('개')); => 멍멍!
console.log(getSound('비둘기')); => 구구구구
console.log(getSound('인간')); => ...?
특정 값에 따라 다른 코드를 실행 시키고 싶을 때,
조건에 따라 다른 동작하고 싶을 때도 객체 사용
function makeSound(animal){
const tasks = {
개: () => {
console.log('멍멍!');
},
고양이() {
console.log('야옹!');
},
비둘기: function(){
console.log('구구구구');
}
}
const task = tasks[animal];
if (!task){
console.log('...?');
return;
}
task();
}
makesound('개');
makesound('비둘기');
makesound('인간');