2.7.2 바인딩: 변수, 상수, 기타 식별자의 작동 방식
이 장의 앞부분에서 const는 범위, 보유할 수 있는 값의 종류 등의 관점에서 let과 동일하게 동작한다는 것을 배웠다. 이는 그럴 만한 이유가 있다. 내부적으로 변수와 상수는 사양에서 바인딩(특히 이 경우 식별자 바인딩)이라고 부르는 동일한 것이다. 이는 식별자와 해당 값에 대한 저장소 간의 연결이다. 예를 들어 다음과 같이 변수를 만들 때,
let x = 42;
x라는 식별자에 대한 바인딩을 만들고 해당 바인딩의 저장소 슬롯에 값 42를 저장한다. 이 경우 변경 가능한 바인딩(값이 변경될 수 있는 바인딩)이다. 상수를 만들 때 변경할 수 없는 바인딩(값을 변경할 수 없는 바인딩)을 만든다.
식별자 바인딩에는 이름과 값이 있다. 이는 객체 속성과 약간 비슷하지 않은가? 그리고 객체 속성과 마찬가지로 컨테이너에 있으며 환경 객체라고 부를 것이다. 예를 들어, 다음 코드가 실행되는 컨텍스트의 환경 객체1는
let a = 1; const b = 2;
그림 2-3과 비슷하다.
▲ 그림 2-3