자바스크립트(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;
}
함수 선언식과 함수 표현식의 차이점
이전의 포스팅에서 다뤘던 호이스팅에서 차이가 발생하게 되는데,
함수 선언식의 경우에는 함수 전체를 호이스팅한다. 그러나 함수 표현식의 경우에는 별도의 변수에 할당하게 되어 선언부&할당부로 나뉘어서 호이스팅을 하게 되는데, 이 때 선언부만 호이스팅하게 된다
함수 표현식의 장점
함수 표현식은 호이스팅에 영향을 받지 않는다라는 특징 이외에 함수 선언식을 사용했을 때 보다 여러가지 장점 또한 있다.
- 클로져로 사용
- 콜백으로 사용
댓글남기기