[TIL] 19-10-09
09 Oct 2019 |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
기본적으로 제공되는 객체에 사용자 정의 메소드를 직접 추가할 수있다.
단점 : 다른 코드아 충돌이 일어날수 있다. 협업할때는 안쓰는게 좋음