기술 블로그
[TIL]꼬리 재귀 본문
반응형
일반적으로 재귀함수는 프로그래밍에서 아주 중요한 요소이며 알고리즘으로도 자주 활용되는 기법이다.
그러나 프론트엔드 환경에서는 어떨까?
이전 게시글에서 봤던 것 처럼 프론트엔드 개발자는 콜스택의 부하를 경계해야하고 여러 문제를 야기한다.
1. 잘못 사용하면 재귀는 스택 오버플로우를 일으키기 좋은 기법이다.
2. 각 함수 호출마다 실행컨텍스트가 생성되기 때문에 메모리 측면에서 좋지 않다.
3. DOM 조작시 성능 저하가 발생할 수 있다.( 매 함수마다 리플로우 리페인팅)
이를 방지하기위해 꼬리 재귀라는 기법을 사용할 수 있다.
//일반 재귀
function factorial(n) {
if (n === 1) {
return 1;
}
return n * factorial(n-1);
}
//꼬리 재귀
function factorial(n, total = 1){
if(n === 1){
return total;
}
return factorial(n - 1, n * total);
}
반응형
'프론트엔드 > Javascript' 카테고리의 다른 글
[TIL] 클로저 (0) | 2023.11.06 |
---|---|
[TIL] 깊은 복사 (0) | 2023.10.23 |
[TIL]동기와 비동기 (0) | 2023.10.13 |
상속과 프로토타입 (0) | 2023.08.07 |
js this (0) | 2022.03.09 |
Comments