개발/Javascript
Javascript Hoisting(호이스팅)
ebkim
2024. 4. 8. 19:57
Hoisting(호이스팅) 이란?
함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효범위의 최상단에 선언하는 것
변수의 경우 var로 선언한 변수만 호이스팅이 적용된다. (let, const 변수는 적용되지 않음)
예시
적용 전
console.log("hello");
var myname = "KIM";
let myname = "KIM222";
적용 후
var myname;
console.log("hello");
myname = "KIM";
let myname = "KIM222";
Hoisting 함수 적용
함수의 선언문은 적용되나, 표현식은 적용되지 않는다.
적용 전
foo();
foo2();
function foo() {
console.log("TEST");
}
var foo2 = function() {
console.log("TEST2");
}
적용 후
var foo2;
function foo() {
console.log("TEST");
}
foo();
foo2(); // ERROR!!!
foo2 = function() {
console.log("TEST2");
}
Hoisting 우선순위
변수 선언문이 함수 선언문보다 위로 끌어올려진다.