[javascript] let과 const의 가시성과 스코프 체인

자바스크립트에서 변수를 선언할 때 letconst 키워드를 사용할 수 있습니다. 이 두 키워드는 변수의 가시성스코프 체인에 영향을 줍니다. 이번 글에서는 letconst의 차이점과 각각의 특징을 살펴보겠습니다.

1. let 키워드

let은 블록 범위 지역 변수를 선언합니다. 이는 변수가 선언된 블록({ }) 유효범위 안에서만 접근할 수 있음을 의미합니다. 또한, 재할당이 가능합니다.

예를 들어:

function demoFunction() {
  let x = 10;
  if (true) {
    let x = 20; // 다른 블록 범위에 새로운 변수로 선언됨
    console.log(x); // 출력: 20
  }
  console.log(x); // 출력: 10
}

위 코드에서 let x = 20;은 새로운 블록 범위 내에 새 변수를 선언합니다.

2. const 키워드

const는 상수를 선언하는데 사용됩니다. 한번 값을 할당하면 이후에는 값을 변경할 수 없습니다. 하지만, 객체배열과 같은 값들은 변경이 가능합니다. 또한, const로 선언된 변수는 블록 범위 지역 변수이며, let과 같이 블록 범위가 적용됩니다.

예를 들어:

const PI = 3.141592;
PI = 3; // 에러: 상수에 다시 할당할 수 없음
const myArray = [1, 2, 3];
myArray.push(4); // 가능: 배열의 내용을 변경하는 것은 가능

3. 스코프 체인

letconst 모두 블록 유효범위를 따릅니다. 이는 변수가 선언된 블록 내에서만 접근 가능하고, 해당 블록이 포함된 다른 블록 내에서는 접근할 수 없음을 의미합니다. 이러한 특성은 스코프 체인과 관련이 있습니다.

결론

letconst는 모두 블록 범위 변수를 선언할 때 사용되며, 스코프 체인에 따라 변수의 가시성을 제어합니다. let은 재할당이 가능한 변수를 선언할 때 사용되며, const는 한번 할당한 값을 변경할 수 없는 상수를 선언할 때 사용됩니다. 이러한 차이점을 이해하고 적절히 활용하면 코드의 가독성과 안정성을 높일 수 있습니다.

참고 문헌: Mozilla Developer Network - let, Mozilla Developer Network - const


이상으로 letconst의 가시성과 스코프 체인에 대해 알아보았습니다. 감사합니다.