재귀함수는 함수안에 또 자신과 같은 함수가 있는것을 말한다. 재귀 함수의 특징은 재귀를 멈추는 조건문이 있어야 하고, 재귀 함수 안에 들어갈 인자가 달라야 한다는 것이다. 맨처음엔 다소 생소하지만 언제나 그렇듯 계속 마주치면 익숙해진다.
하지만, 콜스택에 계속 쌓이기 때문에 성능이 저하된다.
Essential Parts
Base Case: the condition when the recursion ends. This is the most important concept to understand.
Different input.
Obviously No base case
Forgetting to return or returning the wrong thing
->> Stack Overflow!!
Pure Recursion Tip
For arrays, use methods like slice, the spread operator , and concat that make copies of arrays so you do not mutate them.
For strings, they are immutable so you will need to use methods like slice, substr.
For objs , You can use Obj.assign or the spread operator.