
전역 변수를 반드시 사용해야 할 이유를 찾지 못한다면지역 변수를 사용합시다
변수의 생명 주기 : 메모리 공간이 확보된 시점부터 메모리 공간이 해제 되어 가용 메모리 풀에 반환되는 시점까지다.
지역 변수의 생명 주기 : 함수의 생명 주기와 일치한다.
전역 객체: 코드가 실행 되기 이전 단계에 자바스크립트 엔진에 의해 어떤 객체보다도 먼저 생성 되는 특수한 객체.표준 빌트인 객체, 환경에 따른 호스트 객체, var 키워드로 선언한 전역 변수와 전역 함수를 프로퍼티로 갖는다.
var 키워드로 선언한 전역 변수의 생명주기 : 전역 객체 생명 주기와 일치한다.
var x = 'global';
function foo(){
console.log(x) // undefied
var x = 'local';
console.log(x) // local
}
foo()
console.log(x) // global
모든 코드가 전역 변수를 참조하고 변경할 수 있는 암묵적 결합을 허용하는 것
전역 변수는 생명 주기가 길다.
스코프 체인 상에서 종점에 존재
네임스페이스 오염
- 전역 변수를 반드시 사용해야 할 이유를 찾지 못한다면 지역 변수를 사용해야 한다.
- 변수의 스코프는 좁을수록 좋다.
var Counter = (function() {
var num = 0;
return {
increase() { return ++num; },
decrease() { return --num }
}
})();
console.log(Counter.increase()) // 1
console.log(Counter.num) // undefined <-- 정보 은닉!!
console.log(Counter.increase()) // 2
.mjs는 ECMAScript 모듈(ESM)을 위한 JavaScript 파일 확장자입니다.
이 확장자가 붙은 파일은 ES 모듈로 처리되며, import와 export 문법을 사용할 수 있습니다.
이는 코드 분석, 최적화, 트리 쉐이킹(Tree Shaking) 같은 고급 기능을 제공합니다.출처 : https://reactnext-central.xyz/blog/understanding-ecmacript-modules-in-js
<script type="module" src="lib.mjs"></script>