Book/모던 자바스크립트 Deep Dive
14장, 전역 변수의 문제점
떼굴펜
2024. 5. 7. 19:32
전역 변수는 생명 주기는 어플리케이션의 생명주기와 같다.
전역 변수의 문제점
- 암묵적 결합 : 코드 어디에서든 참조하고 할당할 수 있다. (코드 가독성과 값 변경 위험성이 높다.)
- 긴 생명 주기 : 메모리 리소스를 오랜 시간 소비하며, 변수 이름이 중복될 경우, 의도치 않은 재할당이 이뤄진다.
- 스코프 체인의 마지막에 존재 : 전역 변수의 검색 속도가 제일 느리다.
- 네임스페이스 오염 : 동일 식별자가 존재할 경우 예상과 결과가 달라질 수 있다.
전역 변수 쓰지말고 이렇게 해보자
1) 즉시 실행 함수
모든 코드를 즉시 실행 함수로 감사면 그 안의 모든 변수는 즉시 실행 함수의 지역 변수가 된다. 이렇게 사용하면 전역 변수를 생성하지 않으므로 라이브러리 등에 자주 사용된다.
(function () {
const name = '떼굴펜';
})();
2) 모듈 패턴
클래스를 모방해서 관련있는 변수와 함수를 모아 즉시 실행 함수로 감싸 하나의 모듈을 만든다.
var Counter = (function(){
var num = 0; // private 한 변수
return { // public한 데이터나 메서드 반환
increase() {
return ++num;
},
decrease() {
return --num;
}
}
})();