Dev/notion
JavaScript: First-Class Functions (일급 함수)
괴발짜응
2025. 2. 20. 13:03
반응형
일급 함수(First-Class Functions)는 함수가 다른 일반 객체와 동일하게 취급된다는 개념을 말한다.
즉, 함수가 다른 값들과 동일하게 변수에 할당되거나, 함수의 인자로 전달하거나, 함수의 반환값으로 사용할 수 있다는 의미이다.
일급 함수의 특징
1. 변수에 할당 가능
함수를 변수에 저장할 수 있다.
const greet = function(name) {
return `안녕하세요, ${name}님!`;
}
console.log(greet("철수")); // "안녕하세요, 철수님!"
2. 함수의 인자로 전달 가능
함수를 다른 함수의 매개변수로 전달하여, 동적인 로직 처리가 가능하다.
function processUserInput(callback) {
const name = prompt("이름을 입력하세요.");
alert(callback(name));
}
processUserInput(greet);
3. 함수의 반환값으로 사용 가능
함수가 다른 함수를 반환할 수 있어, 고차 함수(Higher-Order Function)를 구현할 수 있다.
function multiplier(factor) {
return function(number) {
return number * factor;
};
}
const double = multiplier(2);
console.log(double(5)); // 10;
4. 데이터 구조에 저장 가능
함수는 객체이므로, 배열이나 객체의 프로퍼티 등다양한 데이터 구조에 저장할 수 있다.
const calculator = {
add: function (val1, val2) {
return val1 + val2;
},
multi: function (val1, val2) {
return val1 * val2;
}
}
console.log(calculator.add(1,2)) // 3;
console.log(calculator.multi(1,2)) // 2;
const arr = [
0,
1,
2,
calculator.add,
calculator.multi,
];
console.log(arr[0]); // 0
console.log(arr[3](1,2)); // 3
console.log(arr[4](1,2)); // 2;
일급 함수를 사용하는 JavaScript의 장점
- 유연성 증가 - 함수를 값으로 다루기 때문에, 코드를 모듈화하고 재사용성이 높은 구조로 작성할 수 있다
- 고차 함수 활용 - 함수를 인자로 전달하거나 반환함으로써, 복잡한 비동기 로직이나 콜백, 이벤트 처리등을 보다 간결하게 표현할 수 있다.
- 함수형 프로그래밍 스타일 - 일급 함수를 활용하면 순수 함수와 고차 함수를 기반으로 한 함수형 프로그래밍 패러다임을 적용할 수 있어, 코드의 예측 가능성과 유지보수성이 향상 된다.
여러분 이거 다 크록포드 할배가 한 얘기인거 아시죠?
반응형