2022-Sep-09, today getting out of my comfort zone.
function에서의 return의 의미
나는 그동안 return ...? 그냥 '값을 반환한다' 라고 단순히 생각해왔다.
MDN에서 return에 대해 살펴보자.

return은 함수의 실행을 종료하고, 값을 함수의 호출 지점으로 반환하는 명령어이다. 즉, for문에서의 break와 비슷한 역할을 한다고 볼 수 있을 것이다.
다음 예제를 통해 살펴보자.
임의의 숫자 n을 나눠서 나머지가 1이되는 최소의 값 x를 구해라.
function solution(n) {
var answer = 0;
for(let i=1; i<=n; i++){
if(n%i ===1){
answer = i;
break;
}
}
return answer;
}
console.log(solution(4));
for문에서의 break, 그리고 function 내부에서의 return
모두 쓸 필요가 있을까? 아래 코드를 다시 살펴보자.
function solution(n) {
var answer = 0;
for(let i=1; i<=n; i++){
if(n%i ===1){
answer = i;
return answer;
}
}
}
console.log(solution(4));
실행 결과 두 코드 모두 동일한 값을 출력한다. for문 내부에서 n을 i로 나눈 나머지가 1이 되는 순간, 함수 자체를 종료하고 그 때의 값을 반환한다. 즉, 함수가 종료되면서 for문도 같이 종료되는 것이다.
결론은 function 내부에서 return은 그 기능 중, 마치 for문에서의 break와 같은 효과를 가진다! ( 아래 코드 처럼 조건의 true/false에 따라 종료하는 것도 가능)
function solution(n) {
var answer = '';
for(let i=1; i<=n; i++){
if(n%i ===1){
answer = '엥';
return answer;
} else if(n%i ===0){
answer = '우엥';
return answer;
}
}
}
console.log(solution(4)); // result : 우엥
다음에 공부할 내용
Arrow function 과 Callback function 그리고 일반 function에서의 return - 암시적 반환에 관하여..