함수 안에 있는 선언을 종합하여 최상단으로 끌어올려 최상단에 선언하는 것.
var
변수 선언과 함수선언문
에서만 호이스팅이 일어난다
var
의 선언과 함수선언문
만 호이스팅되며, 할당은 호이스팅되지 않는다let
또는 const
의 경우에는 호이스팅이 발생하지 않는다var
vs let
let name = 'dooddi';
var name2 = 'dooddi';
//호이스팅 결과
var name2; // var 호이스팅
let name = 'dooddi';
name2 = 'dooddi';
함수선언문
vs 함수표현식
dooddi();
dooddi2();
function dooddi(){ // 함수선언문
console.log('dooddi');
}
var dooddi2 = function(){
console.log('dooddi2');
}
//호이스팅 결과
var dooddi2; // var 호이스팅, 변수 선언이 함수 선언보다 위에 위치
function dooddi(){ // 함수표현식 호이스팅
console.log('dooddi');
}
dooddi();
dooddi2(); // 에러!
dooddi2 = function(){ // 함수표현식은 호이스팅되지 않는다.
console.log('dooddi2');
}
let
과 const
사용