피드로 돌아가기
Dev.toFrontend
원문 읽기
ES6 도입을 통한 Variable Scope 모호성 제거 및 데이터 무결성 확보
var, let and const—from Ambiguity to Specificity
AI 요약
Context
ECMAScript 6 이전의 JavaScript는 var 키워드 하나로 모든 변수를 선언하는 구조였음. 이로 인해 Function Scope와 Global Scope의 경계가 불분명하며, 의도치 않은 변수 재선언과 값 덮어쓰기로 인한 런타임 에러 발생 가능성이 높았던 한계가 존재함.
Technical Solution
- Block Scope 도입을 통한 변수 접근 범위 제한 및 캡슐화 강화
- const 키워드 적용으로 Immutable value를 보장하여 계산 과정 내 데이터 변조 방지
- let 키워드를 통한 가변 변수 선언과 재선언 금지 제약 조건 설정
- Temporal Dead Zone(TDZ) 메커니즘을 통한 초기화 전 변수 참조 차단 및 Hoisting 부작용 해결
- globalThis 객체에 불필요한 속성이 추가되는 Side-effect 제거를 통한 전역 오염 방지
실천 포인트
- 기본적으로 모든 변수를 const로 선언하여 불변성 유지 - 재할당이 반드시 필요한 경우에만 let을 사용하고 Scope를 최소화 - 레거시 코드 유지보수를 제외한 신규 프로젝트 내 var 사용 전면 배제 - TDZ로 인한 ReferenceError 방지를 위해 변수 선언을 블록 최상단에 배치