함수 선언식과 함수 표현식의 차이

kimsnmyng·2025년 1월 30일

Front-End CS

목록 보기
37/79

📌 함수 선언식과 함수 표현식의 차이

자바스크립트에서 함수를 정의하는 두 가지 방법과 그 차이점을 알아보자.

💡 함수 선언식 (Function Declaration)

함수 선언식은 이름이 있는 함수이다. 자바스크립트 엔진이 코드를 실행하기 전에 메모리에 로드하기 때문에 호이스팅이 발생한다.


// 함수 선언보다 호출이 먼저 와도 정상 작동
console.log(add(2, 3)); // 5

function add(a, b) {
    return a + b;
}

특징

  • 호이스팅 발생
  • 코드 내 어디서든 호출 가능
  • 함수 이름이 필수

💡 함수 표현식 (Function Expression)

함수 표현식은 변수에 익명 함수를 할당하는 방식이다. 변수에 할당된 이후에만 호출이 가능하다.

// 함수 표현식 선언 전 호출 시 에러 발생
console.log(multiply(2, 3)); // Reference Error!

const multiply = function (a, b) {
    return a * b;
};

특징

  • 호이스팅 없음
  • 선언 이후에만 사용 가능
  • 변수에 할당하는 형태

🔍 결론

구분함수 선언식함수 표현식
호이스팅OX
선언 전 호출가능불가능
유연성낮음높음

함수 선언식은 호이스팅으로 인해 코드의 어디서든 호출이 가능하지만, 함수 표현식은 변수에 할당된 후에만 사용할 수 있다.

profile
안녕하세요 김선명입니다.

0개의 댓글