[javascript] 호이스팅이란 무엇이며, 왜 실행 컨텍스트에서 중요한가?

호이스팅은 변수 및 함수의 선언을 해당 스코프의 최상단으로 끌어올리는 작업을 수행합니다. 즉, 변수의 선언부만 끌어올리고 초기화는 끌어올리지 않습니다. 함수 선언도 마찬가지로 함수 전체가 끌어올려지지만, 함수 표현식은 호이스팅 되지 않습니다.

이로 인해 개발자는 변수와 함수를 나중에 선언한 것처럼 사용할 수 있지만, 실제로는 선언된 위치에서 사용해야 합니다. 호이스팅을 이해하지 못하면 코드의 동작을 정확히 파악하는 데 어려움을 겪을 수 있으므로, 실행 컨텍스트에서 호이스팅은 중요한 요소입니다.