[JS]함수 선언문 vs 표현식
**함수 선언문
function 선언문() {
로직
}
**함수 표현식
const 표현식 = function () {
로직
}
함수 선언문은 호이스팅에 영향을 받지만, 함수 표현식은 호이스팅에 영향을 받지 않음.
=> 함수 선언문은 어디서든 호출이 가능하고, 표현식은 함수를 만든 후 그 아래에서만 호출이 가능하다.
그럼 함수 선언문이 더 자유롭고 좋은거 아닌가?
그러나, 선언문의 우선순위가 가장 높기 때문에
선언문이 너무 많다면 선언문을 모으는 데에 많은 시간을 소비하게 되어 실행코드의 순위가 뒤로 밀리게 되고 실행 시간이 길어질 수 있기 때문에 적당히 사용하는 것이 중요하다고 한다.
그래서 어떤게 더 좋다는건데?
정답은.....
그런거 없다!
그러나! 함수 표현식을 지향하는 곳들이 있다 ! 예를들어 에어비엔비 스타일 가이드를 보면 알 수 있다.
그러나! 함수 선언문을 지향해야한다고 주장하는 사람들이 있다! 모던 자바스크립트 튜토리얼에서는 함수 선언문을 먼저 고려하라고 한다.
그럼 왜 지향할까?
우선, 다른 함수의 인자로 넘길 수 있다는 것, 클로저로 사용할 수 있다는 것 이 큰 장점일 수 있다.
**넋두리
공부를 할 수록 빈틈이 너무 많이 보인다.
함수 표현식에 대해 공부하니 화살표함수가 보이고, 화살표함수가 보이니 콜백함수가 보인다. 콜백함수와 일반 함수의 차이점을 공부하니 이젠 this가 연결되고,
(this를 알아보고 싶다면! https://popeyes9304.tistory.com/28)
또한 콜백함수를 보니 이젠 동기/비동기가 눈에 들어온다. 이렇게 자바스크립트가 한 흐름처럼 공부할 수 있다는걸 처음 깨달았다....