재귀 호출이란?
- 어떤 문제를 작은 단위의 동일한 문제들로 나누어 해결하는 방법
- 함수 자기 자신을 다시 호출하는 것
- 재귀 호출을 멈추는 조건(중단점)을
베이스케이스(basecase)
가 만드시 필요하다
자바스크립트에서 호출 스택 크기의 한계
- 브라우저에서 재귀호출로 인해 호출 스택이 계속 샇이게 되면
스택 오버플로우(stack overflow)
에 걸린다.
호출 스택 크기
- 사용중인 os, browser 종류마다 수치는 다르다.
- 20200319 ios, chrome 버전 80은 "15683"번 호출한다.
호출 스택 크기 확인 코드
var i = 0
function recursiveFn() {
i++
recursiveFn()
}
try {
recursiveFn()
} catch (ex) {
alert(`i: ${i}, error: ${ex}`)
}
참고
자바스크립트 자료 구조와 알고리즘 - 에이콘