Study/JavaScript
What are the advantages of function expressions? 함수표현식 vs 함수 선언식
더 멋진 세상을 꿈꾸는 개발자
2020. 4. 30. 13:05
함수 선언식은 호이스팅에 영향을 받지만, 함수 표현식은 호이스팅에 영향을 받지 않는다.
함수 선언식은 코드를 구현한 위치와 관계없이 JS의 특징인 호이스팅에 따라 브라우저가 js를 해석할 때
위로 끌어 올려진다.
예를들어, 아래의 코드를 실행할 때,
//실행 전
logMessage();
sumNumbers();
function logMessage(){
return 'worked';
}
let sumNumbers = function() {
return 10 + 20;
};
호이스팅에 의해 자바스크립트 해석기는 코드를 아래와 같이 인식한다.
//실행 시
function logMessage(){
return 'worked';
}
let sumNumbers;
logMessage(); // 'worked'
sumNumbers(); // Uncaught TypeError: sumNumbers is not a function
sumNumbers = function(){
return 10 + 20;
};
"호스팅에 영향을 받지 않는다"는 것 외에도 함수 표현식의 다른 장점들이 있다.
- 클로져로 사용.
- 콜백으로 사용 (다른 함수의 인자로 넘길 수 있음)
** 함수 표현식으로 클로져 생성하기
**함수 표현식을 다른 함수의 인자 값으로 넘기기 (콜백)
클로저와 콜백은 다음시간에 또 다루어보자.
참조 :
함수 표현식 vs 함수 선언식
함수 선언식 - Function Declarations 일반적인 프로그래밍 언어에서의 함수 선언과 비슷한 형식이다. function 함수명() { 구현 로직 } Js Copy // 예시 function funcDeclarations() { return 'A function decla..
pks424.tistory.com