var 변수는 오직 함수블럭에만 종속된다.
var변수는 렉시컬환경객체에 등록되면서 undefined로 초기화되어 바로 접근이 가능하다. 이것을 호이스팅이라 한다.
if (false) { // false가 중요한것이 아니다
var test = true;
}
alert(test);
코드블럭내 var 변수는 호이스팅되며 undefined로 초기화되어 항상 접근이 가능하다.
(function() {
var a = 1;
})();
console.log(a);
a변수는 즉시실행함수에서 생성후 소멸되어 에러가 발생한다.