호이스팅
❓질문
자바스크립트 호이스팅에 대해서 설명해주세요.
💡 조사하기전 내가 알고 있던 내용
JS에서 모든 함수와 변수는 코드 실행되기전에 마치 최상단에 끌여 올려져 선언된 것
처럼 동작합니다 이를 호이스팅이라고합니다.
먼저 함수는 선언문과 표현문으로 나눌수있는데 선언문으로 선언된 함수는 함수 상단에서 호출해도 사용이 가능합니다. 단 let 이나 const로 변수에 담아 사용하는 표현문은 아래 설명에 따라갑니다
변수는 크게 var와 let , const로 나눌수있습니다
먼저 var는 변수 초기화 이전에 사용하게되면 undefined로 출력됩니다 이는 예상치 못한 에러를 불러 올수있고 원하지않는 로직이 실행 될수있습니다 그렇기에 ES6부터 나온 변수 선언 방식인 let,const는 변수 초기화 이전에 사용하게되면 Reference Error를 발생시키며 이 구간을 TDZ
라고 부릅니다. 이를 통해서 미연에 사고를 방지할수있습니다.
🏫 정리한 내용
위 내용과 동일