호이스팅

    [JavaScript] 호이스팅 & TDZ

    호이스팅 변수/함수 선언 시점 이전에 그것에 접근할 수 있는 것. 선언이 마치 스코프의 상단으로 끌어올려진 것 같은 현상이다. 코드 실행 전, 자바스크립트 엔진이 코드를 스캔하고 코드 내의 변수, 함수 선언에 대한 정보를 실행컨텍스트에 기억한다. 이 때, 선언 TYPE에 따라 기억되는 정보가 달라진다. 따라서 호이스팅 결과도 다르게 나타난다. TYPE HOISTED? 초기값 스코프 함수 선언문 ✅ Actual function 블록(strict mode) var ✅ undefined 함수 let & const ❎ TDZ(uninitialized) 블록 함수 표현식/화살표 함수 var, let, const 선언 방식에 영향을 받는다. var 선언방식의 경우 선언과 동시에 초기화되므로, undefined의 값..