ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Javascript - 조건문 스마트하게 쓰기
    Javascript 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('인간');
Designed by Tistory.