변수,함수의 선언부만 코드의 최상단으로 끌어올려주는 것
함수를 나타내는 방법 모두 호이스팅은 가능하지만 선언식보다는 표현식에서 권장된다.
catDeclaration();
function catDeclaration(){
console.log("야옹이");
}
//'야옹이'
어느 줄에서 호출할 수 있는 함수로써 위험성이 크기 때문에 권장하지 않는다.
2. 표현식 함수에서의 호이스팅→권장!
catExpression()
const catExpression=function(){
console.log("야옹이");
}
//ReferenceError: catExpression is not defined
const cat=function(){
console.log("야옹이");
}
cat();
//'야옹이'
호이스팅되지 않은 상태에서 표현식 함수가 할당된 이후에만 실행이 가능하다.
화살표 함수(arrow function)도 표현식과 동일하게 호이스팅되지 않는다.