재귀란, 자기 자신을 호출하는 것을 뜻한다. 그 중에서도 자기 자신을 호출하는 함수를 의미한다.
따라서 재귀 함수를 작성할 때는 특정 순간에 재귀를 멈추도록 해야하는데, 이를 Base Case라고 한다.
function countDown (num) {
if(num <= 0) {
console.log("끝");
return;
}
console.log(num);
num--;
countDown(num);
}
위의 예시에서는 입력받은 숫자에서 0보다 클 때까지 1씩 줄어들면서 출력하고, num
이 0보다 크거나 작으면 재귀를 종료한다.
재귀 함수는 이렇게도 작성할 수 있다.
function sumRange(num) {
if(num === 1) return 1;
return num + sumRange(num-1);
}
재귀 함수를 작성할 때, 중요한 점은 중단점(Base Case)을 제대로 설정하는 것이다. 이 부분을 제대로 설정해 주지 않으면 무한으로 함수가 실행되어 Stack overflow
가 발생한다.