변수 호이스팅(hoisting)이란?
자바스크립트에서 변수 선언문이 코드의 가장 위쪽으로 끌어올려진 것처럼 동작하는 것
hoist : 끌어올리다
예시 1
console.log(foo) // undefined
var foo
자바스크립트는 변수 선언과 동시에 undefined를 할당한다.
foo라는 변수가 런타임 이전에 먼저 선언 및 undefined로 초기화되어, 위 코드는 에러가 발생하지 않고 undefined를 출력한다.
예시 2
console.log(foo) // undefined
var foo = 3 // var foo; foo = 3;
console.log(foo) // 3
이 경우에는 각각 undefined, 3을 출력한다.
var foo = 3; 은 var foo; foo = 3;을 단축해서 표현한 것으로, 둘의 수행 시점이 다르기 때문이다.
변수 foo 선언은 런타임 이전, 값 3 할당은 런타임에 수행된다.
'JAVASCRIPT' 카테고리의 다른 글
DOM과 Virtual DOM (0) | 2022.01.16 |
---|---|
자바스크립트 Promise (0) | 2022.01.14 |
자바스크립트 가비지 콜렉션과 순환참조 (0) | 2021.12.10 |
자바스크립트 Execution Context (0) | 2021.12.08 |
JavaScript Closure (0) | 2021.04.21 |