자바스크립트 인터프리터가 변수와 함수 선언에 대한 메모리 공간을 미리 할당해 놓는 것.
자바스크립트만의 특별한 기능이라기보다. 기본적으로 프로그래밍 언어에서 지원하는 기능이다.
직접 프로그래밍언어를 만들때에도,
어떤 변수가 선언되어있는지 메모리에 할당을 해놓고, 코드를 실행하는 것이 더 쉬울 것이다.
이런 개념을 이해하기 쉽게 "끌어올린다"라는 명칭을 붙여서 호이스팅이라고 명명하게 되었다.
--
자바스크립트에는 다음과 같은 변수 선언방식이 있다고 할 수 있다.
1. var
2. const, let
그리고 이 모든 선언은 호이스팅이 일어난다.
차이점이 있다면, const/let은 호이스팅은 되어 메모리에 할당되어있지만
실제 const/let으로 선언된 값을 const/let가 선언된 코드 이전에서 접근을 하려하면
TDZ라는 것이 있어서 Reference Error을 Throw하게 된다는 것이다.
https://www.youtube.com/watch?v=AlcRl4pJd0c&ab_channel=Taehoon
https://www.youtube.com/watch?v=k9uEtsDAuvY&ab_channel=Taehoon
'개발 > FrontEnd Interview' 카테고리의 다른 글
IIFE와 arrow function (0) | 2021.11.16 |
---|---|
Virtual DOM의 진짜 역할은 뭐지? (0) | 2021.11.09 |
왜 프로그래밍 언어에는 참조타입이 있는걸까? (0) | 2021.10.10 |
리액트의 Virtual DOM은 무엇인가요? JSX는 무엇인가요? (0) | 2021.10.10 |
CORS의 탄생배경 (0) | 2021.10.10 |