재귀함수란 어떤 함수 내에서 자기 자신을 호출하는 함수를 말한다. 자주 사용하는 반복문 대신 쓸 수 있는 아주 유용한 함수이다. 다만, 자기 자신을 계속해서 부르는 것이기 때문에 종료 조건을 반드시 명확히 잘 써주어야 한다.
재귀함수를 사용하는 곳은 반복문을 사용하는 곳과 같다. 대표적으로 팩토리얼을 구현할 때 사용한다.
먼저 팩토리얼이란 5!로, 54321의 결과값을 말한다. 고등학교 시절 수학시간에 경우의 수 때문에 엄청 했던 기억이 난다..
const fac = n => {
var result = 1;
for(let i = 1 ; i <= n ; i++) {
result *= i
}
return result;
}
// 120
console.log(fac(5));
위는 반복문 for를 통해서 팩토리얼을 만들었다. 재귀함수를 사용하면 이보다 훨씬 간단하게 팩토리얼을 구현할 수 있다.
const fac = n => {
if(n <= 1) return 1;
return n * fac(n-1);
}
// 120
console.log(fac(5));