Recent Posts
Recent Comments
Archives
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 자주 까먹는
- js
- 프로젝트 셋팅
- deep dive
- git
- 모던 자바스크립트
- nextjs
- Next
- error
- 구글 로그인
- 티스토리챌린지
- 오블완
- vscode
- domain
- 코딩테스트
- 초기셋팅
- useRouter
- CORS
- 소셜 로그인
- 모던자바스크립트
- vercel
- array정적메서드
- React
- 코테
- 리터럴
- 내일배움캠프
- 스파르타코딩클럽
- 코드카타
- 프로그래머스
- 셋팅
- Today
- Total
파피루스
14장, 전역 변수의 문제점 본문
전역 변수는 생명 주기는 어플리케이션의 생명주기와 같다.
전역 변수의 문제점
- 암묵적 결합 : 코드 어디에서든 참조하고 할당할 수 있다. (코드 가독성과 값 변경 위험성이 높다.)
- 긴 생명 주기 : 메모리 리소스를 오랜 시간 소비하며, 변수 이름이 중복될 경우, 의도치 않은 재할당이 이뤄진다.
- 스코프 체인의 마지막에 존재 : 전역 변수의 검색 속도가 제일 느리다.
- 네임스페이스 오염 : 동일 식별자가 존재할 경우 예상과 결과가 달라질 수 있다.
전역 변수 쓰지말고 이렇게 해보자
1) 즉시 실행 함수
모든 코드를 즉시 실행 함수로 감사면 그 안의 모든 변수는 즉시 실행 함수의 지역 변수가 된다. 이렇게 사용하면 전역 변수를 생성하지 않으므로 라이브러리 등에 자주 사용된다.
(function () {
const name = '떼굴펜';
})();
2) 모듈 패턴
클래스를 모방해서 관련있는 변수와 함수를 모아 즉시 실행 함수로 감싸 하나의 모듈을 만든다.
var Counter = (function(){
var num = 0; // private 한 변수
return { // public한 데이터나 메서드 반환
increase() {
return ++num;
},
decrease() {
return --num;
}
}
})();
'Book > 모던 자바스크립트 Deep Dive' 카테고리의 다른 글
18장, 함수와 일급 객체 (0) | 2024.05.09 |
---|---|
17장, 생성자 함수에 의한 객체 생성 (0) | 2024.05.08 |
13장, 스코프 (0) | 2024.05.02 |
11장, 원시값과 객체의 비교 (0) | 2024.04.19 |
10장, 객체 리터럴 (1) | 2024.04.19 |