function foo(){
var x = 'local';
console.log(x);
return x;
}
foo();
console.log(x); //ReferenceError
지역 변수 x는 foo함수가 생성되기 전에는 생성되지 않는다.
변수 선언은 선언문이 어디에 있든 소스코드 평가과정에서 (런타임 이전)에 실행된다.
이 설명은 전역 변수에만 해당한다.
위의 foo 함수 호출 시, 함수 몸체 다른 문들보다 변수, 식별자 선언문이 자바스크립트 엔진에 의해
실행되어 변수 x가 undefined로 초기화된다.
그 후, 런타임에 소스코드가 한줄씩 실행되고 변수 할당문에서 x에 ‘local’이 대입된다.
그리고 함수 종료 시 , 변수 x도 소멸되어 생명이 끝난다.
즉, 지역변수의 생명 주기는 함수의 생명주기와 일치한다
변수는 하나의 값을 저장하기 위한 메모리 공간 자체 또는 그 메모리 공간을 식별하기 위한 이름이다.
함수 내부에서 선언된 지역 변수는 자신이 등록된 스코프가 소멸될떄까지 유효하다.
(지역변수 x의 경우 foo함수의 스코프)