자바스크립트 블록 유효 범위 변수(let, const)

자바스크립트는 ES6(ES2015)부터 블록 유효 범위 변수인 letconst를 도입했습니다. 이들은 기존에 사용되던 var와 달리 좀 더 엄격한 변수 선언 규칙을 갖고 있으며, 블록 유효 범위를 가지기 때문에 코드의 가독성과 유지보수성을 높여줍니다.

let

let은 블록 유효 범위를 가지는 변수입니다. 블록은 중괄호 {}로 표시되는 코드 영역을 의미하며, if, for, while 등의 제어문 또는 함수로 생성된 스코프에서만 유효합니다. 이는 변수가 블록을 벗어나면 메모리에서 해제되어 자동으로 가비지 컬렉션 됨을 의미합니다.

{
    let name = "John";
    console.log(name); // 출력: John
}

console.log(name); // 오류: name is not defined

let으로 선언한 변수는 재할당이 가능합니다.

let count = 0;
count = 1; // 변수 값 재할당
console.log(count); // 출력: 1

const

const는 상수를 선언하는 데 사용됩니다. 선언 시에 초기값을 할당하고 한 번 할당된 값은 변경할 수 없습니다. 블록 유효 범위를 가지며, let과 마찬가지로 블록 외부에서 접근할 수 없습니다.

{
    const PI = 3.14;
    console.log(PI); // 출력: 3.14
}

console.log(PI); // 오류: PI is not defined

const로 선언한 변수는 재할당이 불가능합니다.

const name = "John";
name = "Jane"; // 오류: Assignment to constant variable

사용 시 주의사항

const person = {
    name: "John",
    age: 30
};

person.age = 31; // 가능: 객체 내부의 속성 수정
console.log(person); // 출력: { name: "John", age: 31 }

const numbers = [1, 2, 3];
numbers.push(4); // 가능: 배열에 요소 추가
console.log(numbers); // 출력: [1, 2, 3, 4]

결론

블록 유효 범위 변수 letconst는 자바스크립트 코드를 더욱 안전하고 가독성 있게 작성할 수 있도록 도와줍니다. var보다 엄격한 규칙을 가지고 있으며, 변수의 스코프를 명확하게 정의하는 데 도움이 됩니다. 재할당이 필요한 경우 let을 사용하고, 변경이 없는 상수를 선언할 때는 const를 사용하는 것이 좋습니다.