선언이 평가되기 전 접근할 때의 차이를 이해합니다.
함수 선언은 본문과 함께 초기화되어 앞에서 호출할 수 있습니다. var는 선언만 undefined로 초기화되지만 let과 const는 선언 줄 전까지 TDZ에 있어 접근하면 오류가 납니다.
코드를 읽을 때는 declaration(); function declaration() { ... } 부분부터 찾으세요. 현재 값과 실행 순서를 줄마다 적어 보면 문법을 외우지 않아도 결과를 예측할 수 있습니다.
실행하기 전에 예상 결과를 짧게 적은 뒤 let 변수를 선언 전에 읽어 어떤 오류가 나는지 try/catch 안에서 확인하세요. 실제 출력이 다르면 콘솔에 처음 나타난 오류와 그 직전 값을 차례로 확인하세요.
호이스팅에 의존해 선언 전 변수를 사용하는 코드는 실행 순서를 이해하기 어렵습니다.
직접 바꿔보세요let 변수를 선언 전에 읽어 어떤 오류가 나는지 try/catch 안에서 확인하세요.