on
Javascript <자바스크립트> 재귀함수, 즉시실행함수.
Javascript <자바스크립트> 재귀함수, 즉시실행함수.
Javascript <자바스크립트> 재귀 함수, 즉시 실행 함수.
재귀 함수와 즉시 실행 함수.
재귀 함수는 말 그대로 자기가 자기 자신을 호출하고 특정 조건이 될 때까지 계속해서 호출하고 조건이 충족되면 함수를 빠져나온다.
재귀 함수를 사용할 때는 함수를 끝내는 종료 조건이 있어야 한다. 없으면 무한으로 계속해서 돌기 때문이다.
일부 함수는 반복문으로 구현 가능하지만 그렇지 않은 경우도 있는데 tree 구조의 노드 전체를 확인할 때 재귀를 사용하면 적은 코드로 확인 가능하고 직관적이다.
하지만 재귀 함수를 호출할 때마다 스택을 소비하기 때문에 반복문에 비해 메모리나 소비나 시간이 더 걸린다. (스택은 나중에 포스팅)
오늘은 재귀 함수중에서 팩토리얼 : 수학적 용어로 계승이란 뜻으로 1부터 n까지의 정수를 곱하는 연산이다. 예를 들어 팩토리얼 5 는 1*2*3*4*5 , 120 이다. ( 러시아 인형처럼 인형안에 인형안에 인형 ... 마지막 인형)
factorial(5)
function factorial(n) { if(n <= 1){ return n; // 종료조건 n 이 1보다 작거나 같으면 n 을 리턴한다 } // 러시아 인형에서 제일 마지막 작은 인형 return n * factorial(n-1); } factorial(5) //작동 방식 확인. 5 * factorial(4) // save 5 * 4 * factorial(3) // save 5 * 4 * 3 * factorial(2) // save 5 * 4 * 3 * 2 * factorial(1) // save 5 * 4 * 3 * 2 * 1 // 처음에 앞에서부터 숫자가 1까지 생기고 뒤부터 곱해지면서 5까지 간다. 5 * 4 * 3 * 2 // 1*2 = 2 *3 = 6 *4 = 24 * 5 = 120 5 * 4 * 6 5 * 24 120
재귀함수 참고 사이트
https://ko.javascript.info/recursion
즉시 실행 함수
즉시 실행하고 외부에서 컨트롤할 필요가 없는 함수.
(익명 즉시 실행 함수) 함수의 이름 없이 소괄호로 한 번 더 감싸주고 함수의 마지막 소 괄요 안에 소괄호를 써서 호출해준다. 해당 함수는 한번 호출하고 사라진다.
(function () { //일반 함수과 다르게 이름이 없고 function 을 소괄호로 한번더 감싼다. let a = 1; let b = 2; return a + b; }()); //감싸진 소괄호 앞에 자기 자신호출하는 () 소괄호를 넣어준다.
이름이 없고 자신을 호출하고 사라져서 한번 사용되면 사라지고 다시 호출할 수 없게 된다.
재귀 함수로 구현하고 팩토리얼 이외에도 다양하게 사용할 수 있다. 아직 너무 어렵고 그나마 이해가 되는 하나를 복습하면서 포스팅했다. 앞으로 계속 공부하면서 하나씩 알아가면서 포스팅해야겠다.
https://github.com/chry8822
728x90
반응형
from http://covelope.tistory.com/34 by ccl(A) rewrite - 2021-12-16 00:26:36