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

trina lee·2023년 5월 18일

자바스크립트에서 함수를 정의하는 두 가지 방법
1. 함수 선언식

function myFunction() {
  // 함수 내용
}
  1. 함수 표현식
const myFunction = function() {
  // 함수 내용
};

화살표 함수(arrow function)는 함수 표현식(function expression)의 한 종류이다.

const myFunction = () => {
  // 함수 내용
};
  1. 함수 선언식
  • 함수 이름이 필요하다.
  • 호이스팅에 영향을 받는다. (호이스팅 = 변수 및 함수 선언이 스코프의 맨 위로 옮겨지는 동작)
  • 따라서 함수 선언식은 선언하기 전에 호출해도 정상 작동한다.
  1. 함수 표현식
  • 변수에 할당하는 방식으로 정의된다.
  • 함수 이름은 선택사항이며, 이름을 생략하면 익명 함수로 취급한다.
  • 호이스팅의 영향을 받지 않는다.
  • 함수 표현식은 함수 정의 이전에 호출하면 오류가 발생한다.
  • 다른 변수와 마찬가지로 다른 함수에 전달될 수 있으며, 일급 함수로 취급될 수 있다.
    즉, 함수를 변수에 할당하고 다른 함수의 인수로 전달하거나 반환값으로 사용할 수 있다.
  • 함수 표현식을 사용하면 해당 컴포넌트가 할당되기 전에는 참조할 수 없다. 그래서 함수 표현식은 주로 콜백함수나 클로저 등에서 유용하게 사용된다.
  • 함수 표현식은 더 유연하며, 모듈 시스템과 함께 사용할 때 이름 충돌 등을 방지할 수 있다.
profile
지금은 개발 모드

0개의 댓글