seungjun2.log
로그인
seungjun2.log
로그인
전역 변수의 문제점 질문/답변
어승준
·
2023년 10월 4일
팔로우
0
JS 스터디
전역 변수의 문제점
JS 스터디
목록 보기
5/26
📌 전역변수의 문제점 2가지 이상 말해 주세요.
암묵적 결합
변수의 유효 범위가 커지면서 코드의 가독성은 나빠지고,
의도치 않게 상태가 변경될 수 있는 위험성도 높아진다.
긴 생명 주기
즉, 메모리 리소스를 오랜 시간 소비한다.
특히 var 키워드는 변수의 중복 선언을 허용하므로 생명 주기가 긴 전역 변수는 변수 이름이 중복될 수 있고, 변수 이름이 중복되면 의도치 않은 재할당이 이뤄진다.
네임스페이스 오염
자바스크립트는 파일이 분리되어 있어도 하나의 전역 스코프를 공유한다.
다른 파일에서 동일한 이름으로 명명된 전역 변수나 전역 함수가 같은 스코프 내에 존재할 경우 예상치 못한 결과를 가져올 수 있다.
스코프 체인 상에서 종점에 존재
변수를 검색할 때 가장 마지막에 검색된다. 즉 검색 속도가 가장 느리다.
📌 전역 변수를 활용해서 개발해본 경험을 들어주세요
로그인 정보를 recoil 등의 상태 관리 라이브러리로 전역변수로서 저장하여, 다른 컴포넌트에서 사용
📌 전역 변수를 최소화하기 위한 방법은 어떤 것들이 있나요?
▶️ 모듈 패턴
변수와 함수가 해당 모듈 내부에서 캡슐화되어 전역 스코프와 격리됨
▶️ IIFE(즉시 실행 함수 표현식)
해당 함수 내에서 선언된 변수는 지역 스코프로 제한됨
▶️ let, const 사용
블록 스코프 변수를 선언하여 지역 변수로서 활용 가능
📌 지역 변수와 전역 변수의 생명 주기에 대해 설명해 주세요.
▶️ 지역 변수 생명 주기
지역 변수는 해당 변수가 선언된 함수나 블록 내에서만 유효합니다. 함수나 블록의 실행 범위에 따라 변수가 생성되고 소멸합니다. 이를 "지역 스코프"라고 합니다.
▶️ 전역 변수 생명 주기
전역 변수는 프로그램의 시작부터 끝까지 존재하며 어디서든 접근할 수 있습니다. 전역 변수의 생명 주기는 프로그램이 실행되는 동안 계속 유지됩니다.
📌 var, let, const 로 지역 변수를 선언하는 방법에 대해서 설명해 주세요.
▶️ var
ES5 이전에 사용되던 변수 선언 키워드로, 함수 스코프를 가집니다.
따라서 함수 내에서 선언된 변수는 해당 함수 내에서만 유효하며, 호이스팅 현상이 발생합니다.
새로운 변수를 선언할 때 var를 사용하면 전역 스코프에 변수가 등록될 수 있으므로 주의가 필요합니다.
▶️ let
ES6에서 도입된 변수 선언 키워드로, 블록 스코프를 가집니다.
함수 내부 뿐만 아니라 블록 내에서도 유효하며, 호이스팅은 발생하지만 초기화되지 않은 상태로 변수를 사용할 수 없습니다.
▶️ const
const는 let과 마찬가지로 블록 스코프를 가지며, 변수를 선언과 동시에 초기화해야 합니다.
const로 선언된 변수는 재할당이 불가능하며, 상수로 사용되어야 합니다. 그러나 객체나 배열의 경우, 변수가 가리키는 객체나 배열의 내부 내용은 수정될 수 있습니다.
어승준
鈍筆勝聰(둔필승총) : '둔한 붓이 총명함을 이긴다' (서툴더라도 기록으로 남기는 것이 사람의 기억보다 훨씬 오래 보전된다) - 정약용
팔로우
이전 포스트
함수 질문/답변
다음 포스트
객체 리터럴 질문/답변
0개의 댓글
댓글 작성