개념
함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효 범위의 초상단에 선언하는 것을 의미한다.
자바스크립트 함수는 실행되기 전에 해당 함수를 한번 훑고, 함수안에 존재하는 변후/함수 선언에 대한 정보를 기억하고 있는다. 필요한 변수값들을 모두 모아서 유효 범위의 최상단에 선언한다. 실제로 코드 및 메모리에 변화가 있는 것은 아니며, 자바스크립트 Parser 내부적으로 끌어올려서 처리한다.
대상
var변수 선언과 함수 선언문에서만 호이스팅이 일어난다.
let/const 변수 선언과 함수 표현식에서는 호이스팅이 발생하지 않는다.
// 함수 선언문
function action1(){
console.log("Hello");
}
action1(); // 동작함
action2(); // 에러남
//함수 표현식
var action2 = function(){
console.log("World");
}
참고
'Front-End > Front-End 지식' 카테고리의 다른 글
Vue와 React 차이 (0) | 2023.03.28 |
---|---|
브라우저 저장소 (0) | 2023.03.28 |
브라우저 (0) | 2023.03.28 |