함수를 만드는 또 다른 세련된 방법인 **함수 표현식(Function Expression)**에 대해 알아보겠습니다.
자바스크립트에서는 함수를 마치 변수에 담긴 데이터처럼 취급할 수 있습니다.
1. 익명 함수 (Anonymous Function)
익명 함수란 이름이 없는 함수를 말합니다.
이름이 없기 때문에 단독으로 존재할 수 없고, 보통 변수에 할당하여 사용합니다.
- 특징: 이름을 지어줄 필요가 없어 간단한 기능을 구현할 때 편리하며, 변수 이름으로 함수를 호출합니다.
- 호이스팅 주의: 변수에 할당하는 방식이므로, 함수 선언문과 달리 선언하기 전에는 호출할 수 없습니다.
JavaScript
// 변수 'sum'에 이름 없는 함수를 할당합니다.
const sum = function(a, b) {
return a + b;
};
console.log(sum(10, 20)); // 변수 이름을 함수 이름처럼 사용
2. 즉시 실행 함수 (IIFE)
함수를 정의함과 동시에 그 즉시 실행해버리는 함수입니다.
- 구조: 함수 전체를 소괄호 ( )로 감싼 뒤, 뒤에 다시 소괄호 ( )를 붙여 호출합니다.
- 용도: 프로그램 시작 시 단 한 번만 실행될 설정 코드를 작성하거나, 변수를 함수 안에 가두어 전역 변수의 충돌을 방지할 때 사용합니다.
JavaScript
(function() {
const message = "프로그램을 초기화합니다.";
console.log(message);
})();
// 함수를 만들자마자 바로 실행되므로 호출문이 따로 필요 없습니다.
3. 화살표 함수 (Arrow Function)
ES6(2015년)에서 도입된 문법으로, function 키워드 대신 **화살표(=>)**를 사용하여 함수를 간결하게 표현합니다.
- 특징: 코드가 짧아져 가독성이 좋아지며, 주로 콜백 함수로 자주 쓰입니다.
- 생략 규칙:
- 파라미터가 하나라면 괄호 ( ) 생략 가능
- 함수 내부가 한 줄이라면 중괄호 { }와 return 키워드 생략 가능
JavaScript
// 1. 일반적인 화살표 함수
const multiply = (a, b) => {
return a * b;
};
// 2. 더 간결한 표현 (중괄호와 return 생략)
const square = n => n * n;
console.log(multiply(3, 4)); // 12
console.log(square(5)); // 25
📋 함수 선언 방식 비교표
| 구분 | 함수 선언문 | 함수 표현식 (익명 함수) | 화살표 함수 |
| 표현 방식 | function name() { } | const name = function() { } | const name = () => { } |
| 호이스팅 | 전체가 호이스팅됨 | 변수 선언만 호이스팅됨 | 변수 선언만 호이스팅됨 |
| 이름 | 있음 | 없음 (변수명이 이름을 대신함) | 없음 |
| 사용 시기 | 일반적인 함수 정의 시 | 변수처럼 다루고 싶을 때 | 짧고 간결한 처리가 필요할 때 |
학습 정리
- 익명 함수는 이름 없이 변수에 저장되어 필요할 때 호출된다.
- **즉시 실행 함수(IIFE)**는 정의와 동시에 실행되어 일회성 작업에 쓰인다.
- 화살표 함수는 현대 자바스크립트의 표준이며, 코드를 매우 짧고 아름답게 만들어준다.
함수를 다루는 다양한 기술들을 모두 배우셨습니다!

'JavaScript' 카테고리의 다른 글
| return (0) | 2026.02.14 |
|---|---|
| Parameter and Argument (0) | 2026.02.14 |
| Function (0) | 2026.02.14 |
| var let const (0) | 2026.02.14 |
| Variables scope and hoisting (0) | 2026.02.14 |