
함수 내부에서 선언된 지역 변수는 함수가 호출되면 생성되고 함수가 종료하면 소멸
변수 선언은 코드가 한 줄씩 순차적으로 실행되는 시점인 런타임에 실행되는 것이 아니라 런타임 이전 단계에서 자바스크립트 엔진에 의해 먼저 실행 => 전역변수 한정
지역 변수의 생명주기는 함수의 생명 주기와 일치
호이스팅은 스코프 단위로 동작하기 때문에 함수 내부의 지역변수에서도 호이스팅이 동작!
var x = 'global';
function foo() {
console.log(x); // undefined (foo함수 내부의 지역변수 x는 이미 undefined 값으로 선언이 되었기 때문)
var x = 'local'
};
foo();
console.log(x); // global
var키워드로 선언한 전역 변수는 전역 객체의 프로퍼티가 됨window, 서버 사이트 환경에서는 global 객체를 의미var 키워드로 선언한 전역 변수의 생명 주기는 전역 객체의 생명 주기와 일치var 키워드로 선언한 변수는 더는 전역 변수가 아니며 window객체의 프로퍼티도 아님