오늘의 공부 👍
오늘은 호이스팅에 대해서 자세히 알아보고 복습해 보겠습니다.
📝 호이스팅
호이스팅을 이해하려면 var에 대해서 알아야 합니다. 간단하게 정리해보겠습니다.
- 변수가 선언되기 전 접근하려 하면 위와 같은 에러가 나옵니다.
- var 키워드는 에러를 발생시키는 것이 아니라 undefined로 참조가 됩니다.
- 해당 변수의 선언 코드를 만나기 전에는 아무런 데이터가 담기지 않은 채로 로직이 동작하게 됩니다.
- var로 선언된 변수는 JavaScript를 해석하는 과정에서 마치 그 선언 단계가 위로 끌어 올려진 듯 동작하기 때문입니다.
- 이러한 개념을 호이스팅이라 부릅니다.
- 호이스팅이란 함수, 변수의 선언이 마치 위로 끌어올려진 것처럼 동작하는 것입니다.
📝 변수의 선언 단계
호이스팅은 var뿐만아니라 let const도 일어나는데요 정리해보겠습니다.
- 선언하는 변수는 선언 단계, 초기화 단계, 할당 단계를 거치게 됩니다.
- let과 const는 선언단계와 초기화단계 사이에 TDZ(변수에 할당된 메모리가 부여되기 전 단계)가 존재합니다.
- 그래서 호이스팅이 발생하지 않는 것처럼 동작하는 것입니다.
- 함수 표현식도 마찬가지로 호이스팅이 발생하지 않는 것처럼 동작합니다.
출처 및 참고
코드캠프