: 한 함수가 자기 자신을 함수 내부에서 실행시켜 원하는 값을 얻을때 까지 반복하는 함수. 반복문을 사용하지않고, 코드를 간결하게 작성할 수 있다는 장점을 가지고 있다. 그러나 이때 주의 사항은 항상 먼저 탈출 할 수 있는 base case를 먼저 작성하고, 나머지를 작성해야 무한 루프에 빠지는것을 방지 할 수 있다.
(글로 쉽게 설명되지만, 코드로 작성 할 때, 너무 어렵다 ^^)
재귀함수는 아래와 같은 상황에서 사용하면 효율적으로 코드를 작성할 수 있다.
간단한 예로 팩토리얼을 들 수 있다.
(팩토리얼이란, 5! 같이 적을 수 있다. 그리고 수학시간에 배웠듯이 이건 5x 4 x 3 x 2 x 1 을 뜻한다.)
이 팩토리얼을 코드로 작성해보면,
function factorial(num) { if(num ===0){ // num이라는 숫자가 0이되면 멈추겠다는 base case다. return 1; 여기 리턴값은 아래 마지막 함수를 실행했을때, 곱해지는 값 또는 함수에 따라 더해지는값이 될 수 있다. } return num * factorial(num-1); }