ES6 이후부터의 JS 엔진 동작을 이해하기위해 생긴 개념.

‘JS 엔진은 식별자들을 최상단으로 끌어올린다'는 개념이다.

js의 변수 선언은 선언 → 초기화 단계

이후에 변수를 참조하여 할당이 가능하다

Var 선언자의 호이스팅

console.log(a); // undefined
var a = 10;

와 같은 코드는 호이스팅을 통해

var a;
console.log(a); // undefined
a = 10;

과 같은 순서로 이해할 수 있다.

function f1(){ // 이게 함수선언식
	console.log('this is f1');
}
var a = 2;

에서

var a;
function f1(){
	console.log('this is f1');
}
a = 2;