리턴은 함수를 종료하는 기능이다. 이 기능이 없으면 함수는 undefined를 내놓는다. 이는 마치 변수를 선언만 하고 할당은 하지 않는 것과 같다.
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가 들어오든지 간에 조건문을 거쳐서 함수가 리턴되기 때문에 함수를 호출했을 때 항상 실행되는 로직은 절대 없다. 따라서 원하지 않는 흐름을 막을 수 있다.