[javascript] 블록 스코프와 let, const

자바스크립트에서 변수를 선언할 때 var 키워드를 사용하는 경우 전역 스코프나 함수 스코프에 변수가 할당됩니다. 이는 때로 예기치 않은 문제를 일으킬 수 있습니다. ES6부터 도입된 letconst 키워드를 사용하면 블록 스코프 변수를 정의할 수 있습니다.

let 키워드

let 키워드를 사용하여 변수를 선언하면 해당 변수는 블록 스코프 내에서만 유효합니다. 블록 스코프는 중괄호로 둘러싸인 코드 블록을 말합니다. 예를 들어, if, for, while 문 등이 블록 스코프를 형성합니다.

if (true) {
  let x = 10;
  console.log(x); // 10
}
console.log(x); // ReferenceError: x is not defined

const 키워드

const 키워드는 let과 같이 블록 스코프 변수를 정의하는데 사용됩니다. 하지만 한 번 할당된 값을 변경할 수 없습니다.

const PI = 3.14;
PI = 3.14159; // TypeError: Assignment to constant variable

const로 선언된 객체나 배열의 경우, 변수가 가리키는 객체나 배열의 속성이나 요소는 변경할 수 있습니다. 하지만 새로운 객체나 배열을 할당하는 것은 불가능합니다.

const person = {
  name: 'Alice'
};
person.name = 'Bob'; // 가능
person.age = 30; // 가능
person = {}; // TypeError: Assignment to constant variable

letconst 키워드를 사용하여 변수 및 상수를 선언하면 전역 스코프에서의 문제를 예방하고 블록 스코프를 적절히 활용할 수 있습니다.

더 많은 정보는 “MDN Web Docs“에서 확인할 수 있습니다.