호이스팅?
: 선언이 맨 위로 끌어올려지는 것TDZ(Temporal Dead Zone)
: 선언과 초기화 사이의 단계
- 🙅🏻♂️ var 사용 지양하는 이유?
: 변수는 선언->초기화->할당의 단계로 진행이 됨
: var 같은 경우 선언과 초기화 단계가 동시에 이루어지기 때문에 TDZ(Temporal Dead Zone)이 존재하지 않음
: 사실상 모든 변수는 호이스팅이 발생
: let과 const의 경우 ReferenceError 오류가 발생하기 때문에 미리 오류가 생긴 부분을 체크 가능
: var의 경우 오류가 발생하는 것이 아니라 defined로 출력되기 때문에 대규모 프로젝트 등 협업하는 경우 초기에 오류를 발견하지 못하고 진행하게 되어 문제가 걷잡을 수 없이 커짐.