본문 바로가기

JAVASCRIPT

자바스크립트 변수 호이스팅

변수 호이스팅(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