

호이스팅은 코드 실행전 선언된 함수/변수를 해당 스코프의 최상단에 올려주는 역할을 하는 것이 아니라 최상단으로 올려진것과 같은 효과를 주는 현상을 말합니다. 최신 자바스크립트 ES6문법의 let과 const 에서는 사용할 수 없고, var 변수에서 호이스팅이 일어납니다. JS엔진(V8)은 함수와 변수가 실행되기 전에 실행 컨텍스트를efa11a/image.png)
위해 메모리에 저장을 합니다. 즉, 이것을 호이스팅 이라고 합니다.
함수는 전체 함수에 대한 참조와 함께 저장되고, var키워드가 있는 변수는 undefined, let 및 const 키워드가 있는 변수 는 초기화되지 않은 상태로 메모리에 저장됩니다.
결론적으로 호이스팅을 이해하고 코드를 작성하는 것이 버그를 피하는 좋은 방법이라고 생각합니다.