호이스팅을 외운 결과로만 설명하는지, _실행 전 바인딩 단계_라는 엔진 동작으로 풀 수 있는 사람인지를 가른다.
호이스팅은 자바스크립트 엔진이 코드를 실행하기 전 _스코프별로 식별자를 환경 레코드에 등록_하는 준비 단계 때문에 가능하다. 함수 선언은 등록 시점에 본문까지 바인딩되어 선언 이전 호출이 가능하지만, var는 등록만 되고 값은 undefined로 초기화된다. let/const도 등록은 되지만 _초기화 전 구간(TDZ)_에 있어 접근 시 ReferenceError가 발생한다. 즉 "코드가 위로 이동"하는 게 아니라, _실행 전 바인딩 시점이 식별자 종류별로 다르다_는 것이 본질이다.
TDZ에 걸리는 const 참조 버그를 재현해본 적이 있다면 "등록은 됐는데 초기화 전"이라는 엔진 모델을 답변 후크로 쓸 수 있다
var → let/const 전환 도중 호이스팅으로 가려졌던 버그가 드러난 경험이 있다면 그 케이스로 자연스럽게 이어진다
함수 선언식/표현식 선택 기준을 팀에 정한 경험이 있다면 호출 가능 시점을 근거로 설명할 수 있다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.