호이스팅(hoisting) 자바스크립트에서 변수와 함수 선언을 그들이 속한 스코프의 최상단으로 끌어올려지는 현상을 말합니다. 예를 들어, var
를 사용하여 변수를 선언하는 경우 변수 선언 전 로그에 출력하려고 하면 대부분의 언어에서는 에러가 발생하지만 자바스크립트에서는 호이스팅때문에 undefined
가 출력됩니다.
console.log(myVar); // undefined
var myVar = 5;
console.log(myVar); // 5
또한 let
과 const
를 사용한 변수 선언은 호이스팅이 발생하지만, 초기화는 호이스팅되지 않습니다. 따라서 let
과 const
로 선언된 변수를 초기화하기 전에 접근하려고 하면 에러가 발생합니다.