자바스크립트(JavaScript) - 함수선언문과 함수표현식의 차이

함수 선언식과 함수 표현식

자바스크립트에서는 함수를 정의하는 방법에 두 가지 방법이 있다. 첫 번째로는 함수 선언식, 두 번째로는 함수 표현식이 있다.

함수 선언식

함수 선언식(Function Declaration)은 함수명이 정의되어 있으나 별도의 할당 명령이 없는 것을 말한다. 일반적인 프로그래밍 언어에서의 함수 선언과 비슷한 형식을 띄고 있다.

1
2
3
function sum(a, b) {
  return a + b;
}

함수 표현식

함수 표현식(Function Expression)은 정의한 함수(Function)을 별도의 변수에 할당하는 것을 말한다. 자바스크립트의 유연성이라는 언어의 특징을 활용한 선언 방식이다.

1
2
3
const sum = function(a, b) {
  return a + b;
}

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

이전의 포스팅에서 다뤘던 호이스팅에서 차이가 발생하게 되는데,

함수 선언식의 경우에는 함수 전체를 호이스팅한다. 그러나 함수 표현식의 경우에는 별도의 변수에 할당하게 되어 선언부&할당부로 나뉘어서 호이스팅을 하게 되는데, 이 때 선언부만 호이스팅하게 된다

함수 표현식의 장점

함수 표현식은 호이스팅에 영향을 받지 않는다라는 특징 이외에 함수 선언식을 사용했을 때 보다 여러가지 장점 또한 있다.

  1. 클로져로 사용
  2. 콜백으로 사용

댓글남기기