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으로 변경하지 않았다. 값 선언을 변경하는 것이 중요하다는 사실을 강조하기 위한 것이다. 당연히 다른 변수도 변경할 수 있다).