728x90
1급 함수란 무엇일까?
JavaScript에서 1급 함수(First-Class Function)란 함수가 다른 데이터 타입(변수, 객체)처럼 다뤄질 수 있음을 의미힌다.
프로그래밍 언어에서 1급 함수는 함수가 아래와 같은 특성을 가질 때 성립한다.
1급 함수는 코드 재사용성과 유연성을 크게 높여준다. 함수를 매개변수로 받거나 반환값으로 사용할 수 있어 동작을 분리하고 조합할 수 있다.
- 함수를 변수에 할당할 수 있다.
- 함수를 다른 함수의 인자로 전달할 수 있다.
- 함수가 다른 함수의 반환값이 될 수 있다.
- 함수 안에서 다른 함수를 정의할 수 있다.
1급 함수의 특징
함수를 변수에 할당
// 함수 선언
function greet() {
console.log("Hello, world!");
}
// 함수 표현식으로 변수에 할당
const sayHello = greet;
sayHello(); // "Hello, world!" 출력
함수를 다른 함수의 인자로 전달
// 함수 선언
function greet() {
console.log("Hello, world!");
}
// 인자로 함수 받기
function callFunction(func) {
func();
}
callFunction(greet); // "Hello, world!" 출력
함수를 다른 함수의 반환값으로 사용
function makeGreeting() {
return function() {
console.log("Hi, there!");
};
}
const greetUser = makeGreeting();
greetUser(); // "Hi, there!" 출력
함수 안에 함수를 정의
function outerFunction() {
function innerFunction() {
console.log("Inner function executed.");
}
innerFunction();
}
outerFunction(); // "Inner function executed." 출력
JS 1급 함수의 활용 예시
콜백 함수 (Callback Function)
JavaScript의 비동기 처리에서 자주 사용되는 콜백 함수는 1급 함수의 특징을 활용한 대표적인 예이다.
setTimeout, setInterval 등의 함수는 콜백을 받아서 비동기적으로 실행한다.
setTimeout(() => {
console.log("Executed after 2 seconds.");
}, 2000);
함수형 프로그래밍 (Functional Programming)
JavaScript의 배열 메서드인 map, filter, reduce 등은 고차함수로 콜백을 전달한다.
const numbers = [1, 2, 3, 4, 5];
// map을 사용해 각 요소에 2를 곱함
const doubled = numbers.map(num => num * 2);
console.log(doubled); // [2, 4, 6, 8, 10]
참고문헌
일급 함수 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN
프로그래밍 언어는 해당 언어의 함수들이 다른 변수처럼 다루어질 때 일급 함수를 가진다고 합니다. 예를 들어, 일급 함수를 가진 언어에서 함수는 다른 함수들에 전달인자로 제공되고, 다른 함
developer.mozilla.org
728x90
'Frontend > JavaScript' 카테고리의 다른 글
[JavaScript] 배열 비교하기 (0) | 2024.11.08 |
---|---|
[JavaScript] 문자열 역순으로 뒤집기 (0) | 2024.11.08 |
JS 스코프 개념 (0) | 2024.09.11 |
JS Promise란? (0) | 2024.09.09 |
JS Calllback 함수란? (0) | 2024.09.09 |