Web Basic · ES2015

블록 스코프를 기준으로 변수 수명 읽기

let과 const는 변수 선언 취향이 아니라, 값이 살아 있는 범위와 재할당 가능성을 코드 블록 단위로 제한하는 장치다.

01

선언 위치

변수가 필요한 가장 작은 중괄호 블록 안에 선언한다.

02

변경 의도

값을 다시 넣어야 하면 let, 그렇지 않으면 const를 기본으로 둔다.

03

루프 캡처

반복문 안 비동기 콜백은 let으로 각 반복의 값을 따로 잡는다.

04

객체 수명

const 객체는 속성 변경이 가능하므로 불변 데이터와 구분한다.

for
반복 index 각 반복마다 다른 binding을 만들어 콜백 값 섞임을 줄임
var와 비교해 확인
if
조건 내부 값 분기에서만 필요한 임시값을 밖으로 새지 않게 함
scope 축소
const object
참조 고정 binding은 고정되지만 내부 property는 바뀔 수 있음
freeze는 별도
TDZ
선언 전 접근 오류 undefined로 조용히 넘어가지 않고 ReferenceError 발생
초기화 순서 확인

재할당 · 범위 · 루프 점검

재할당 let을 쓴 줄에 실제 재할당 이유가 있다.
범위 변수가 함수 전체로 불필요하게 올라가지 않는다.
루프 콜백이 마지막 index만 보는 버그가 없다.
불변성 const를 객체 불변과 혼동하지 않는다.