조금 더 생각해 볼 만한 문제 001

Suxxzzy.log·2021년 11월 10일
1

중요 포인트

목록 보기
1/4

함수의 리턴

리턴은 함수를 종료하는 기능이다. 이 기능이 없으면 함수는 undefined를 내놓는다. 이는 마치 변수를 선언만 하고 할당은 하지 않는 것과 같다.

조건문을 잘 작성하는 방법

  1. 수도코드로 모든 조건(예외 케이스도 모두 생각)을 나열한 뒤, 벤 다이어그램을 작성한다.꼭!!!!!
  2. 조건문 작성은 교집합이 되는 조건부터 먼저 작성한다.

if문만 쓰는 것과 if, else를 함께 쓰는 것의 차이

if문만을 쓰고 끝내는 것과 if와 else 둘 다 쓰고 끝내는 것의 차이점을 명확하게 이해해야 한다. 아래 두 개의 코드를 보자.

//if 문만 작성한 경우
function isHot(temp){

	if(temp>=30){
    	return 'too hot!'
        }
        return 'okay'
        
}

//if와 else 둘 다 지켜서 쓴 경우
function isHot(temp){

	if(temp>=30){
    	return 'too hot!'
        
        }else{
        return 'okay'
        
}

첫 번째 경우를 보면 if 문으로만 조건문이 작성되어 있다. 온도가 30도를 넘어가게 되면 'too hot'을 반환하고 리턴으로 함수를 종료한다.(함수가 종료되었기 때문에!! if else와 같은 효과가 나타나는 것이다. 하지만 이는 착시 현상이니 유의하자) 이를 제외한 나머지 모든 온도는 조건문에 위배된다. 하지만 위 첫 함수에서는 30도를 제외한 나머지 모든 경우라고 명확하게 else로 명시해 준 게 아니다. if 문 바깥에 return 'okay'를 쓴 거기 때문에 , 이 부분은 무조건 실행이 되게 된다. 따라서 else를 쓰지 않게 된다면 나중에 원하지 않는 흐름이 발생하게 된다.

두 번째 경우를 보면 if else 문으로 작성을 해 주었다. 어떤 argument가 들어오든지 간에 조건문을 거쳐서 함수가 리턴되기 때문에 함수를 호출했을 때 항상 실행되는 로직은 절대 없다. 따라서 원하지 않는 흐름을 막을 수 있다.

profile
몫을 다하는 사람

0개의 댓글

관련 채용 정보