일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- reactnative
- javascript
- 리액트네이티브
- react-native-vision-camera
- 제네릭타입
- 파스에러
- Typescript
- 프로그래머스
- 크라코
- 자바스크립트
- react-native-image-picker
- 모던자바스크립트
- 자료구조와알고리즘
- Android
- Flipper
- craco
- 유니온타입
- slice
- 리액트
- react-native
- 타입스크립트
- React
- js
- react-hook-form
- ios
- 배열
- sort( )
- 리액트쿼리
- 코드숨
- react-native-camera-roll
Archives
- Today
- Total
KassyLog
[모던 자바스크립트]전역 변수의 문제점 본문
전역 변수의 무분별한 사용은 위험하다.
전역 변수를 반드시 사용해야할 이유를 찾지 못한다면 지역 변수를 사용해야한다.
변수는 선언에 의해 생성되고 언젠가 소멸한다.
#암묵적 결합
전역변수를 선언한 의도는 전역, 즉 코드 어디서든 참조하고 할당할 수 있는 변수를 사용하겠다는 것이다.
이는 모든 코드가 전역 변수를 참조하고 변경할 수 있는 암묵적 결합을 허용하는 것이다.
유효 범위가 클수록 코드의 가독성은 아빠지고 의도치 않게 상태가 변경될 수 있는 위험성도 높아진다.
#긴 생명 주기
따라서 메모리 리소스도 오랜 기간 소비한다.
생명주기가 긴 전역 변수는 변수 이름이 중복될 가능성이 있다. 그렇게 되면 의도치 않은 재할당이 이뤄진다.
#스코프 체인 상에서 종점에 존재
전역 변수의 검색 속도가 가장 느리다...
#네임스페이스 오염
다른 파일 내에서 동일한 이름으로 명명된 전역 변수나 전역 함수가 같은 스코프 내에 존재할 경우 예상치 못한 결과를 가져올 수 있다.
따라서 전역 변수가 아닌 지역 변수를 사용하는게 좋다.
변수의 스코프는 좁을수록 좋다!
- 방법1 ) 모든 코드를 즉시 실행 한수로 감싸면 모든 변수는 즉시 실행 함수의 지역 변수가 된다.
- 방법2 ) 전역에 네임스페이스 역할을 담당할 객체를 생성하고 전역변수처럼 사용하고 싶은 변수를 프로퍼티로 추가하는 방법
- 방법3 ) 클래스를 모방해서 관련이 있는 변수와 함수를 모아 즉시 실행 함수로 감싸 하나의 모듈을 만든다.
- 방법4 ) ES6 모듈은 파일 자체의 독자적인 모듈 스코프를 제공한다.
'javascript' 카테고리의 다른 글
[모던 자바스크립트]'제어문' 알아보기! (0) | 2022.12.11 |
---|---|
[모던 자바스크립트]'타입변환과 단축평가' 알아보기! (0) | 2022.12.11 |
[모던 자바스크립트]let, const 그리고 블록 레벨 스코프 (0) | 2022.11.27 |
[모던 자바스크립트]'표현식과 문' 알아보기! (0) | 2022.11.26 |
[모던 자바스크립트]'변수' 알아보기! (0) | 2022.11.26 |