모든 코드를 즉시 실행 함수로 감싸주면 모든 변수는 즉시 실행 함수의 지역 변수로 변경
(function test() {
var x = 10;
}());
console.log(x); // ReferenceError: x is not defined
전역에 네임스페이스 객체를 생성하여 전역변수처럼 사용하고 싶은 변수를 추가
var NS = {}; // 전역에 네임스페이스 생성
NS.name = 'Kim';
console.log(NS.name); // Kim
네임스페이스는 계층구조로도 사용 가능
var NS = {};
NS.person = {
name: 'Kim',
age: 10
}
console.log(NS.person.name); // Kim
※ 유용하지 않으니 지양한다.
클로저 공부 후 작성
파일 자체의 독자적인 모듈스코프
script 태그에 type = "module" 어트리뷰트를 추가하면 동작
<script type = "module" src = 'lib.mjs'></script>
<script type = "module" src = 'app.mjs'></script>
이를 사용하면 전역변수를 사용할 수 없다.
확장자는 mjs추천
아직은 Webpack등의 모듈을 사용하는 중