함수의 종류

강한솔·2024년 5월 17일

모던 JS Deep Dive

목록 보기
7/14

즉시 실행 함수

(function() {
  // ...
}());
(function() {
  // ...
})();

정의

함수 정의와 동시에 호출되는 함수

특징

재호출 불가
익명 함수를 사용하는 것이 일반적

목적

독립적 스코프를 통해 전역 변수로 인한 오염을 막음


재귀 함수

function factorial(n) {
    if (n<=1) return 1; // 탈출 조건
    
    return n * factorial(n-1); // 재귀 호출
}

정의

스스로를 호출하는 함수

재귀(再歸)

'다시 재', '돌아올 귀'를 쓰고, '본디의 곳으로 다시 돌아오는 것'을 뜻한다.

특징

탈출 조건 필수

목적

반복되는 처리를 위해 사용한다. 반복문을 사용하는 것보다 재귀 함수를 사용하는 편이 더 직관적일 때 사용


중첩 합수

function outer(){ //외부 함수
 function inner(){ //내부 함수, 중첩 함수
 
 }
}

정의

함수 내부에 정의된 함수

특징

외부 함수 내부에서만 호출할 수 있음
내부적으로 재사용 가능
클로저와 연관이 있음

목적

자신을 포함하는 외부 함수를 돕는 헬퍼 함수의 역할


콜백 함수

//외부에서 전달받은 f를 n만큼 반복 호출
fuction repeat(n, f) {
	for(var i=0; i<n; i++){
     	f(i); //i를 전달하면서 f를 호출
    }
}

var logAll = function(i){
  console.log(i);
};

//반복 호출할 함수를 인수로 전달
repeat(5, logAll); // 0 1 2 3 4

var logOdds = function(i){
  if(i%2) console.log(i);
};

// 반복 호출할 함수를 인수로 전달
repeat(5,logOdds); // 1 3

정의

함수의 매개변수를 통해 다른 함수의 내부로 전달되는 함수

특징

함수 외부에서 고차 함수 내부로 주입하기 때문에 교체 가능

고차 함수

매개변수를 통해 함수의 외부에서 콜백 함수를 전달받은 함수

목적

헬퍼 함수의 역할
중복 코드 최소화
비동기 처리, 배열 고차 함수에 활용

비동기 처리

특정 코드의 연산이 끝날 때까지 코드의 실행을 기다리지 않고 다음 코드를 실행하는 방식


순수 함수와 비순수 함수

순수 함수

외부 상태에 의존하지도 않고 변경하지도 않는 함수

같은 인자로 같은 결과가 나오는 함수

비순수 함수

외부 상태에 의존하거나 외부 상태를 변경하는 함수

같은 인자로 다른 결과가 나오는 함수

0개의 댓글