var name = "Rudy";
console.log(name) //Rudy
var name = "jane";
console.log(name) // Jane
---------------------------------
console.log(name) // undefined
var name = "jane"; //할당
var는 선언하기 전에 사용할 수 있다. 선언은 호이스팅(hoisting)되지만 할당은 불가
선언 단계(Declaration phase) : 변수를 실행 컨텍스트의 변수 객체에 등록하는 단계를 의미합니다. 이 변수 객체는 스코프가 참조하는 대상이 됩니다.
초기화 단계(Initialization phase) : 실행 컨텍스트에 존재 하는 변수 객체에 선언 단계의 변수를 위한 메모리를 만드는 단계 입니다. 이 단계에서 할당된 메모리에는 undefined로 초기화 됩니다.
할당 단계(Assignment phase) : 사용자가 undefined로 초기화된 메모리의 다른 값을 할당하는 단계 입니다.