-
What are the advantages of function expressions? 함수표현식 vs 함수 선언식Study/JavaScript 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; };
"호스팅에 영향을 받지 않는다"는 것 외에도 함수 표현식의 다른 장점들이 있다.
- 클로져로 사용.
- 콜백으로 사용 (다른 함수의 인자로 넘길 수 있음)
** 함수 표현식으로 클로져 생성하기
**함수 표현식을 다른 함수의 인자 값으로 넘기기 (콜백)
클로저와 콜백은 다음시간에 또 다루어보자.
참조 :
'Study > JavaScript' 카테고리의 다른 글
for문과 while문의 차이점 (0) 2020.05.01 what is Scope? (0) 2020.04.30 Why do I need to use `return`? (0) 2020.04.30 Parameters and Arguments (0) 2020.04.29 Hoisting (0) 2020.04.29