2021 프론트 엔드 로드맵 따라가기/JS
Hoisting
알 수 없는 사용자
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을 참고하도록 하자.