더북(TheBook)

함수 표현식에서 선언부는 변수를 선언한 부분입니다. 그래서 실제로는 다음과 같이 실행되어 ‘printHello는 함수가 아니다’라는 오류 메시지가 나오게 됩니다.

var printHello;
printHello();
printHello = function printHello(){ 
  console.log("Hello");
}

화살표 함수 방식으로 정의해도 결국 함수 표현식처럼 변수에 할당하는 것이므로 함수 표현식과 같은 원리로 호이스팅됩니다. 단, 함수 표현식이나 화살표 함수를 let이나 const 키워드로 선언했다면 호이스팅 자체가 되지 않습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.