let과 const는 선언된 블록 내에서만 존재한다. 다음은 let을 사용한 예다.
function stayContained() {
var a = [1, 2, 3];
for (var i = 0; i < a.length; ++i) {
let value = a[i];
console.log(value);
}
console.log("Outside loop " + value); // ReferenceError: 'value' is not defined
}
stayContained();
이제 value는 블록이 의미하는 대로 범위가 지정된다. 그 밖의 함수 영역에는 존재하지 않는다. 필요한 만큼만 존재하며 명백한 의도가 실제 효과와 일치한다(stayContained에서는 다른 변수를 var에서 let으로 변경하지 않았다. 값 선언을 변경하는 것이 중요하다는 사실을 강조하기 위한 것이다. 당연히 다른 변수도 변경할 수 있다).