// 선언문
function hello{
console.log('Hello');
}
// 표현식
const hello = function () {
console.log('Hello')
}
// 호이스팅
hello();
//선언
function hello(){
console.log('HELLO')
}
자바스크립트에서 호이스팅이란? 인터프리터가 변수와 함수의 메모리 공간을 선언전에 미리 할당하는 것을 의미함.
var로 선언한 변수의 경우 호이스팅시 undefined로 변수를 초기화 시킴. 반면 let과 const로 선언한 함수는 호이스팅시 변수를 초기화 하지 못하게 되어 있다.
호이스팅을 설명할때 주로 변수의 선언과 초기화를 분리한 후 , 선언만 코드의 최상단으로 옮기는 것으로 말함. 따라서 변수를 정의하는 코드보다 사용하는 코드가 앞서 등장 할 수 있음.
함수의 선언과 표현은 함수 호이스팅이 발생 유/무가 있으므로 그 차이에 대한것을 인지 해야한다.