함수 선언문과 함수 표현식에서 호이스팅이 어떤 차이점을 가지고 작동하는지 한번 간략하게 살펴보자.
함수 선언문과 함수 표현식은 보기쉽게 예로 보자면
function a (b,c){
return b+c
}
이게 함수 선언문이다.
const 알랑 = function(b,c){
return b+c
}
이게 함수 표현식이다.
함수 선언문은 함수를 선언 만 한거!
함수 표현식은 함수를 만들어서 변수에 할당한거!
잊지말자.!
여기서 함수 선언문은 호이스팅되어 선언만 해 두어도
윗줄에서 호출하면 컨텍스트에서 불러다가 실행을 시켜준다.
그런데 함수 표현식은 그렇지않다. 선언을 하면 선언부에서만 호이스팅을 하게 된다.
즉 함수 선언문은 어디에 해도 컨텍스트 내부에서 위에있건 아래있건 호이스팅되어 호출하면 즉시 사용가능하고,
함수 표현식은 변수에 할당전에 호출하면 오류가 발생합니다.
저는 복잡하니까 당분간 함수 선언문만 사용하는걸로