함수 내부에서 선언된 지역 변수는 함수가 호출되면 생성되고 함수가 종료하면 소멸
변수 선언은 코드가 한 줄씩 순차적으로 실행되는 시점인 런타임에 실행되는 것이 아니라 런타임 이전 단계에서 자바스크립트 엔진에 의해 먼저 실행 => 전역변수 한정
지역 변수의 생명주기는 함수의 생명 주기와 일치
호이스팅은 스코프 단위로 동작하기 때문에 함수 내부의 지역변수에서도 호이스팅이 동작!
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
객체의 프로퍼티도 아님