JavaScript

Function Expression

lshjju 2026. 2. 14. 16:56

함수를 만드는 또 다른 세련된 방법인 **함수 표현식(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 키워드 대신 **화살표(=>)**를 사용하여 함수를 간결하게 표현합니다.

  • 특징: 코드가 짧아져 가독성이 좋아지며, 주로 콜백 함수로 자주 쓰입니다.
  • 생략 규칙:
    1. 파라미터가 하나라면 괄호 ( ) 생략 가능
    2. 함수 내부가 한 줄이라면 중괄호 { }와 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