● 블록 스코프
자바스크립트는 원래 함수 스코프를 따르는 언어였지만, ES6에서 let, const 키워드가 추가되면서 블록 스코프도 지원하게 됐습니다. 블록 스코프는 {}로 구성된 블록문 기준으로 스코프의 유효 범위를 나누는 방식입니다. 단, 이 방식은 let과 const 키워드로 선언한 변수에 한해서만 적용됩니다.
다음은 블록 스코프를 이해하기 쉽도록 작성한 예제 코드입니다. 코드를 보면 블록 스코프 외부에 let 키워드로 변수 a를 선언하고, 블록 스코프 내부에 let 키워드로 변수 b를 선언한 뒤 블록 스코프 내부와 외부에서 각각 참조합니다.
10/04/block_scope.js
let a = 10;
{
let b = 20;
console.log(`코드 블록 내부 a: ${a}`);
console.log(`코드 블록 내부 b: ${b}`);
}
console.log(`코드 블록 외부 a: ${a}`);
console.log(`코드 블록 외부 b: ${b}`);
실행결과
코드 블록 내부 a: 10
코드 블록 내부 b: 20
코드 블록 외부 a: 10
ReferenceError: b is not defined