블록 안에서 재할당 가능한 변수를 선언합니다.
let으로 만든 변수는 선언된 블록 안에서만 접근할 수 있고 같은 스코프에서 다시 선언할 수 없습니다. 카운터나 현재 선택처럼 실행 중 값이 바뀌는 상태에 사용합니다.
score는 10에서 시작해 score += 5에서 15가 되고, 다음 줄의 곱셈 대입으로 두 배가 되어 30이 됩니다. 두 줄의 순서를 바꾸면 10을 먼저 두 배 한 20에 5를 더해 25가 나오므로, 복합 대입은 적힌 순서대로 앞선 결과 위에 쌓인다는 점을 출력에서 확인할 수 있습니다.
for 문의 머리에서 let으로 선언한 변수는 반복마다 새 바인딩으로 만들어집니다. 그래서 반복 안에서 만든 콜백이 i를 참조하면 각자 0, 1, 2를 기억하지만, 같은 코드를 var로 바꾸면 모든 콜백이 반복이 끝난 뒤의 값 3을 읽습니다.
값이 바뀌지 않는데도 모두 let으로 선언하면 코드만 보고 변경 가능 여부를 알기 어렵습니다.
직접 바꿔보세요score에서 3을 빼는 재할당을 추가하세요.