더북(TheBook)

2.5 새로운 종류의 전역(global)

전역 스코프에서 var를 사용하면 전역 변수가 생성된다. ES5와 이전 버전에서는 모든 전역 변수가 전역 객체의 속성이기도 했다. 하지만 ES2015에서 변경되었다. 이제 자바스크립트에는 var(전역 객체의 속성이기도 함)와 새로운 스타일의 전역(전역 객체의 속성이 아님)으로 생성된 기존 전역이 있다. 전역 스코프에서 letconst는 이러한 새로운 종류의 전역을 만든다.

Note ≣ 전역 객체에 접근하기

하나의 전역 객체가 있다는 것을 알고 있을 것이다. this를 통해 전역 스코프에서 접근하거나 환경이 정의하는 전역(예: 브라우저에서 windowself 또는 노드제이에스의 global)을 사용하여 접근할 수 있다(브라우저와 같은 일부 환경에서는 실제로 전역 객체가 아니라 전역 객체의 파사드이지만 거의 유사하다).

다음은 var를 사용하여 전역 객체의 속성인 전역 변수를 만드는 예이다. 전역 스코프에서 실행해야 한다(노드제이에스나 jsFiddle.net을 사용하는 경우 1장에 설명한 대로 모듈 또는 함수 범위가 아닌 전역 스코프에서 작업해야 한다).

var answer = 42;
console.log("answer == " + answer);
console.log("this.answer == " + this.answer);
console.log("has property? " + ("answer" in this));
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.