변수선언/함수선언
을 해당 스코프의 최상단으로 끌어올리는 것이 아니다.변수선언/함수선언
이 해당 스코프의 최상단으로 끌어 올려진 것 같은 현상을 말한다.변수선언/함수선언
이 저장되어 있기 때문에 선언문보다 참조/호출이 먼저 나와도 오류 없이 동작한다.(정확히는 var 키워드로 선언한 변수와 함수 선언문일 경우 오류 없이 동작한다.이는 선언이 파일의 맨 위로 끌어올려진 것 처럼 보이게 한다.)이 호이스팅이라는 용어를 자바스크립트 실행 컨텍스트에 의한 위에 설명한 현상을 호이스팅이라고 부른다는 것으로 이해하면 되겠다. 그 현상이란 선언이 코드 실행 보다 먼저 메모리에 저장되는 과정으로 인한 현상을 말한다.
// 호이스팅 때문에 선언이 끌어올려져서 오류 안남.
console.log(text); // (선언 + 초기화 된 상태)
text = 'Hanamon!'; // (선언 + 초기화 + 할당 된 상태)
var text;
console.log(text);