종료 지점(종료 조건)까지 반복 수행하는 것이다.
자기자신을 호출하는 함수를 의미한다.
JSON.parse, JSON.stringfy, getElementById 등 구현하면 재귀적이다 .
음 …………. 사용하는 함수들이 재귀적으로 이루어져있어서? 인가 ..
재귀 함수가 자신을 계속 호출하고 또 호출하면, 보이지 않는 곳에서 어떤 일이 일어날까? 오류가 생기지 않는 효과적인 코드를 작성하려면 이걸 이해해야한다!
함수를 호출하면 자바스크립트는 콜스택에 쌓인다. ㅇㅇ V8엔진인가 콜스택 쌓임
헬퍼 메소드 재귀는 재귀적이지 않은 외부 함수가 재귀적인 내부 함수를 호출하는 패턴이다.
즉, 함수 안에 재귀함수를 만들어 사용하는 것
이유는 배열일 때 재귀함수만 쓰면 배열을 계속 초기화 하니까 ..
출력값이 배열이나 배열과 비슷한 종류의 객체를 반환할 때 주로 사용한다.
재귀 함수로만 작성되어진 것
웬만하면 helper 이 더 직관적이여서 선호하지만
배열을 사용하고 헬퍼 메소드 없이 순수 재귀를 작성하는 경우에 배열을 복사하는 slice, spread 연산자(operater), concat 같은 메소드를 사용할 수 있다. 그러면 배열을 변경할 필요가 없다. 그리고 일종의 결과를 축적할 수 있다.
문자열은 변경할 수 없다. slice, substring을 사용해서 사본을 만들어야한다.
객체의 경우, Object.assign, spread 연산자를 사용하는게 유용하다.