알 수 없는 사용자 2021. 6. 5. 10:38

Hoisting

직역하면 끌어올림이다. js 작업을 할 때 이런 식으로 작성된 코드를 본 적이 있을 것이다.

foo();

function foo() {
  console.log("Hello");
}

함수의 선언이 호출보다 밑에 있음에도 불구하고 위의 코드는 정상적으로 작동하는데 이 모습이 마치 아래의 선언을 호출 위로 끌어올리는 것과 같아 Hoisting이라 부르는 것 같다.

 

정확히는 해당 코드를 메모리에 저장할 때도 순서를 바꾸는 로직은 없다고 한다.

 

또한 선언 부분은 Hoisting이 가능하지만 초기화는 Hoisting이 되지 않는다고 한다.

 

var x = 1; // x 초기화
console.log(x + " " + y); // '1 undefined'
var y = 2;

 

더 깊이있는 내용은 mdn을 참고하도록 하자.

 

https://developer.mozilla.org/ko/docs/Glossary/Hoisting