brunch

You can make anything
by writing

C.S.Lewis

by 별똥별 shooting star Sep 12. 2023

자바스크립트의 함수는 어떤 형태들이 있을까?

출퇴근길에 공부하는 자바스크립트1


자바스크립트는  다양한 형태의 함수를 지원한다. 이 글에서는 그 중 몇몇 주요한 함수의 형태에 대해 알아볼 예정이다.


즉시 실행 함수 (Immediately Invoked Function Expression)

즉시 실행 함수는 이름에서도 알 수 있듯이, 함수 정의와 동시에 즉시 실행된다. 이러한 함수는 주로 초기화 과정에서 한 번만 사용되며, 이후에는 다시 호출되지 않는다. 아래의 코드를 보며 이해해보자!  

(function() {
     var a = 3;
     var b = 5;
     return a + b;
 })();

기명 함수로도 사용할 수 있지만, 함수 내부에서만 그 이름을 참조할 수 있다.



재귀함수 (Recursive Function)

재귀 함수는 그 이름처럼 함수 내부에서 자기 자신을 다시 호출하는 함수이다. 반복되는 처리, 예를 들면 팩토리얼 계산과 같은 작업을 표현할 때 유용하다.      

function countdown(n) {
     if (n <= 0) return;
     console.log(n);
     countdown(n-1);
 }



중첩함수 (Nested Function)

중첩 함수는 함수 내부에 다른 함수를 정의하는 것을 말한다. 주로 외부 함수를 도와 작업을 수행하는 '헬퍼' 함수로 사용된다.      

function outer() {
     var x = 1;
     function inner() {
         var y = 2;
         return x + y;
     }
     console.log(inner());
 }



콜백함수 (Callback Function)

콜백 함수는 다른 함수의 인자로 전달되어 특정 조건 하에서 호출되는 함수를 의미한다. 비동기 작업 처리나 배열 메서드에서의 반복 처리 등에 사용된다.      

function repeat(n, callback) {
     for (var i = 0; i < n; i++) {
         callback(i);
     }
 }
 repeat(5, function(i) {
     console.log(i);
 });

 


순수함수와 비순수 함수  

    순수함수 (Pure Function): 동일한 입력에 대해 항상 동일한 출력을 반환하는 함수. 외부 상태에 의존하지 않으며, 외부 상태를 변경하지도 않는다.  

    비순수함수 (Impure Function): 외부 상태에 의존하거나 외부 상태를 변경하는 함수. 부수 효과가 있을 수 있다.  

매거진의 이전글 자바스크립트, 참조에 의한 전달과 외부 상태 변경
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari