[javascript] var 키워드의 호이스팅 동작 방식

예를 들어, 다음 코드를 살펴보겠습니다.

console.log(myVar); // undefined
var myVar = 5;

이 코드에서 변수 myVar은 선언 전에 참조되었지만, undefined가 출력됩니다. 이는 변수 선언이 스코프의 최상단으로 끌어올려지기 때문입니다. 실제로 JavaScript는 위 코드를 다음과 같이 해석합니다.

var myVar;
console.log(myVar); // undefined
myVar = 5;

함수 선언의 경우에도 호이스팅이 발생합니다.

myFunc(); // "Hello, hoisting!"

function myFunc() {
  console.log("Hello, hoisting!");
}

위 코드에서 myFunc 함수가 선언되기 전에 호출되었지만, JavaScript는 호이스팅을 통해 이를 허용합니다.

이러한 호이스팅의 동작 방식은 JavaScript의 동작을 이해하기 위해 중요한데, 주의하여 코드를 작성할 필요가 있습니다.