자바스크립트 변수 선언 키워드인 var, let, const의 차이와 스코프(Scope) 원리를 정리했다.
변수의 유효 범위를 이해하는 것은 오류 방지를 위해 필수적이다.
변수 선언 방식 비교
자바스크립트의 변수 선언 키워드는 유효 범위에 따라 구분된다.
// 1. 블록 스코프 (let, const): 중괄호({}) 내에서만 유효
if (true) {
const blockVar = "상수";
let blockLet = "변수";
var functionVar = "함수 스코프 변수"; // 블록 외부에서도 접근 가능할 수 있음
}
// console.log(blockVar); // 에러 발생
console.log(functionVar); // 출력 가능 (var의 특성)
let과 const 사용의 이유
var와 현대적 선언 방식 간에는 구조적 차이가 존재한다.
-
var: 함수 단위로 스코프가 결정된다.
호이스팅 현상으로 인해 코드의 예측 가능성을 저하시킨다. -
let / const: 블록 단위 스코프를 준수한다.
특히const는 재할당을 금지하여 코드의 안정성을 높인다.
클로저: 스코프의 활용
함수 내부 변수를 보호하고 상태를 유지하기 위해 클로저(Closure)를 활용한다.
함수 종료 후에도 내부 변수를 참조할 수 있는 특성은 자바스크립트의 주요 기능이다.
변수 관리 원칙
기본적으로 const를 사용하고, 재할당이 필요한 경우에만 let을 사용하는 습관이 중요하다.
변수 유효 범위를 최소화함으로써 코드의 명확성을 확보하고 오류를 줄일 수 있는 것 같다.