[javascript] 자바스크립트의 호이스팅(Hoisting) 동작 방식
자바스크립트에서 호이스팅은 변수 선언과 함수 선언을 끌어올리는 동작을 말합니다. 이것은 코드 실행 전에 엔진에 의해 처리됩니다. 호이스팅은 개발자들이 이해하고 의도적으로 사용할 수 있도록 하는 중요한 개념입니다.
변수 호이스팅
변수 호이스팅은 변수의 선언이 해당 범위의 최상단으로 끌어올려지는 동작입니다.
예를 들어,
console.log(myVar); // undefined
var myVar = 5;
위의 코드는 실제로는 다음과 같이 처리됩니다.
var myVar;
console.log(myVar); // undefined
myVar = 5;
변수 호이스팅은 변수의 선언部만 끌어올려지며 할당 부분은 끌어올려지지 않습니다.
함수 호이스팅
함수 선언도 마찬가지로 해당 범위의 최상단으로 끌어올려집니다.
예를 들어,
sayHello(); // "Hello, World!"
function sayHello() {
console.log("Hello, World!");
}
위의 코드는 다음과 같이 처리됩니다.
function sayHello() {
console.log("Hello, World!");
}
sayHello(); // "Hello, World!"
함수 표현식과 화살표 함수는 호이스팅되지 않으므로 함수 선언과 다르게 동작합니다.
결론
호이스팅은 자바스크립트의 동작 방식을 이해하는 데 중요한 개념입니다. 이를 알고 있다면 코드를 더 잘 이해하고 예측할 수 있으며, 버그를 예방하고 코드를 개선하는 데 도움이 됩니다.