[TIL] 19-10-09

|

TIL은 정리되지 않은 포스트 입니다.

추후에 TIL을 정리하여 제목이 달린 포스트를 합니다

recursion, 재귀

함수를 스스로 호출하는것

BaseCase

callstack이 넘치지 않도록

언젠가는 끝나도록

탈출조건을 만들어야한다

이것을 Base Case라고 한다.

  • 대표적인 예 Factorial
function factorial(n) {
    // Base Case
    // n이 0이면 재귀를 더 이상 진행하지 않는다.
    if (n === 0) {
        return 1;
    }
    
    // REcursive Case
    return n * factorial(n-1);
}
  • 대표적인 예 fibonacci 수열

    function fib(n) {
        if(n === 0) {
            return 0;
        }
        if(n === 1) {
            return 1;
        }
        // fib(n) === fib(n-1) + fib(n-2);
        return fib(n-1) + fib(n-2);
    }
    // 0 1 1 2 3 5 8 13 ...
      
    
  • Jasson 구조 탐색

    재귀의 장점

    특정한 알고리즘을 작성할때 표현식이 직관적이다

    가독성이 좋다

재귀의 단점

값이 리턴될때까지 호출마다 call stack 을 생성하므로 메모리를 많이 사용한다.

prototype

빵틀과 빵

빵이 instance

extending prototype

기본적으로 제공되는 객체에 사용자 정의 메소드를 직접 추가할 수있다.

단점 : 다른 코드아 충돌이 일어날수 있다. 협업할때는 안쓰는게 좋음