자기 자신을 호출하고 특정 조건이 될 때까지 계속해서 호출하고 조건이 충족되면 빠져나오는 함수
! 재귀 함수는 종료조건이 있어야 하며, 종료조건을 설명해주지 않으면 무한으로 반복한다.
대표예제
function factorial(x) {
if (x<0) return;
if (x===0) return 1;
return x * factorial(x-1);
}
factorial(3);
// 6
종료조건
위의 예제에선 if(x<0) return이 종료조건
break라고 생각.
기반 조건(base)
if(조건문){ 성공 }
재귀 함수의 목적, 주로 if문 내부에 있음
위의 예제에선 if(x === 0) return 1
재귀
함수가 자기 자신을 호출하는 것
예제에서는 return x factorial(x-1)
factorial(0) 는 1
factorial(1) 는 1 * factorial(0), 또는 1x1
factorial(2) 는 2 * factorial(1), 또는 2x1x1
factorial(3) 는 3 factorial(2), 또는 3x2x1x1