호이스팅을 알기 전에 '변수'의 개념을 알아야 한다.
let sum = 30;
sum이라는 변수를 선언하고, 30으로 초기화했다.
다른 말로 표현하면,
sum이라는 메모리 주소에 30을 할당했다.
여기에서 '메모리 주소'라는 걸 이용하는 거라는 것만 알면 된다.
이전에 포스팅했던 Undefined vs. Null 에서 예시로 보여줬던 var를 보면 호이스팅을 이해할 수 있다.
// var score; -> 호이스팅이 일어나서 undefined가 된다.
console.log(score); // undefined
var score = 80;
변수에 변수값이 들어가기 전에 메모리에 할당되기 때문에 초기화를 했더라도 undefined가 나오는 이유다.
var 뿐만이 아니라, let, const, function, function*, class 모두 똑같이 작용한다.
소스코드가 순차적으로 실행되는 시점인 런타임보다 먼저 선언된다. 그게 호이스팅이다.
쉽게 말하면,
운전하기 전에, 자동차 열쇠와 면허증도 필요하고 핸드 브레이크를 올려야 하는 등 기본인 것이 필요한 것과 동일하다.
간단한 이론이지만 정리를 잘하시는거 같아 읽기가 편하고 이해하기 쉽습니다. ^0^