3.3.3 재귀 함수

    어떤 함수가 내부에서 자기 자신을 다시 호출하는 함수를 재귀 함수(recursive function)라고 합니다. 다음 코드를 콘솔에서 실행하면 다음과 같이 에러가 발생합니다.

    let i = 0;
    function recurse() {
      i++;
      recurse();
    }
    recurse();
    Uncaught RangeError: Maximum call stack size exceeded

    재귀 함수를 사용하다 보면 Maximum call stack size exceeded라는 에러 메시지를 자주 볼 수 있습니다. 호출 스택은 함수를 담을 수 있는 최대 크기가 정해져 있는데, 이 크기를 초과하는 경우에 해당 에러가 발생합니다. 재귀 함수에서 왜 이런 에러가 발생하는지 호출 스택으로 분석해 보겠습니다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.