자바스크립트는 함수를 정의하는 여러 가지 방법을 제공합니다. 그 중 하나는 함수 표현식입니다. 함수 표현식은 함수를 변수에 할당하는 것을 의미합니다. 이를 사용하여 익명 함수를 생성하거나 다른 함수의 인자로 전달할 수 있습니다.
함수 표현식의 구문
함수 표현식은 다음과 같은 구문을 갖습니다:
const functionName = function() {
// 함수의 내용
};
위 구문에서 function()
은 익명 함수를 선언하는 부분입니다. 이 함수는 이름이 없으며 functionName
과 같은 변수에 할당됩니다.
함수 표현식의 사용 예시
1. 익명 함수
함수 표현식을 사용하여 익명 함수를 생성할 수 있습니다. 익명 함수는 이름이 없는 함수로, 해당 함수를 호출하려면 변수에 할당된 이름을 사용해야 합니다.
const greet = function() {
console.log("Hello, world!");
};
greet(); // 출력: Hello, world!
위 예시에서 greet
변수에 익명 함수를 할당하고, greet()
를 호출하여 결과를 확인할 수 있습니다.
2. 즉시 실행 함수(Immediately Invoked Function Expression, IIFE)
함수 표현식은 결과적으로 함수를 변수에 할당하므로, 이를 활용하여 즉시 실행 함수를 만들 수 있습니다. 즉시 실행 함수는 선언되자마자 즉시 실행되는 함수로, 일회성 작업이나 모듈 패턴 등을 구현할 때 유용합니다.
(function() {
console.log("I am an immediately invoked function!");
})();
위 예시에서 function() { ... }
는 함수 표현식으로 익명 함수를 생성하며, 뒤에 괄호 ()
를 붙여 함수를 즉시 실행합니다.
3. 콜백 함수
함수 표현식은 다른 함수의 인자로 전달되어 콜백 함수로 사용될 수도 있습니다. 이를 통해 비동기 작업이나 반복문 등에서 사용자가 정의한 동작을 실행할 수 있습니다.
function processArray(arr, callback) {
for (let i = 0; i < arr.length; i++) {
callback(arr[i]);
}
}
const numbers = [1, 2, 3, 4, 5];
processArray(numbers, function(num) {
console.log(num * 2);
});
위 예시에서 processArray
함수는 배열과 콜백 함수를 인자로 받아 각 배열 요소에 대해 콜백 함수를 호출합니다. numbers
배열의 요소에 대해 각각 2를 곱한 결과가 출력됩니다.
결론
자바스크립트 함수 표현식은 어플리케이션에서 유연하고 강력한 동작을 구현하는 데 도움을 줍니다. 익명 함수, 즉시 실행 함수, 콜백 함수 등 다양한 상황에서 함수 표현식을 적절히 활용하여 코드를 간결하고 가독성 있게 작성할 수 있습니다.