Z를 선언하지 않고 전역변수(글로벌 스콥트)에 접근 가능
글로벌 스콥트는 전역에 선언되어 어디든, 누구든 접근 가능
다만, 로컬 스콥트에서 {} 글로벌 스콥트에 있는 동일한 식별자를 통해서 새로 변수를 선언해 주면 글로벌 스콥트의 x = 1; y = 2;를 오버라이딩 : 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용 (메소드 내부를 입맛에 맞게 변경)돼서 지워진다.
그래서 로컬 스콥트에서는 x = 3; y = 4; 되고 z = 3의 전역변수를 쓴다.
맨 마지막 console.log(C);에서 출력이 안되는 이유
C가 있긴 하지만 로컬 스콥트에서 선언이 되었고 console.log(C); --> 이 시점에서 { } 로컬 스콥트 안에 있는 변수가 초기화된다. (이것을 가비지(garbage) 컬렉션이라고 한단다.)
그래서! 글로벌 스콥트에서 C가 없기 때문에 접근할 수 없다.