재귀

Mar 19th 2020 by jyoon

재귀 호출이란?

  • 어떤 문제를 작은 단위의 동일한 문제들로 나누어 해결하는 방법
  • 함수 자기 자신을 다시 호출하는 것
  • 재귀 호출을 멈추는 조건(중단점)을 베이스케이스(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}`)
}

참고

자바스크립트 자료 구조와 알고리즘 - 에이콘