hoisting이란? 자바스크립트에서 호이스팅(Hoisting)이란 변수와 함수의 선언문을 해당 스코프의 꼭대기로 끌어올리는 동작을 의미한다. 이 과정에서 선언문 자체는 옮겨지지만, 함수 표현식의 대입문을 포함한 모든 대입문은 끌어올려지지 않는다. var 변수의 호이스팅 console.log(a); // 'undefined' 출력 var a = 3; 자바스크립트는 초기값 할당에 대한 부분은 제외하고 오직 선언부만 호이스팅한다. 즉, 컴파일 시간 동안 자바스크립트는 함수와 변수의 값을 제외한 선언부를 메모리에 저장한다. undefined를 출력하는 이유는? 자바스크립트 엔진이 var변수 선언부를 컴파일 단계에서 찾았을 때, 그 변수는 Lexical Environment에 추가될 것이고 undefined로 ..