자바스크립트 호이스팅 효과를 이용한 초기화 (Initialization using Hoisting Effect)

자바스크립트에서 호이스팅(Hoisting)은 변수 선언이나 함수 선언을 해당 스코프의 최상위로 끌어올리는 동작을 의미합니다. 이러한 효과를 이용하면 변수나 함수를 선언하기 전에 사용할 수 있어 편리하게 초기화할 수 있습니다. 이번 글에서는 자바스크립트의 호이스팅 효과를 이용하여 초기화하는 방법에 대해 알아보겠습니다.

변수 초기화 예제

console.log(message); // undefined
var message = "Hello, world!";
console.log(message); // Hello, world!

위 예제에서는 message라는 변수를 선언하고 초기화하기 전에 console.log로 변수를 출력하고 있습니다. 이 때문에 첫 번째 console.log에서는 undefined가 출력되는데, 이는 변수가 호이스팅되어 이미 선언되었지만 아직 값이 할당되지 않은 상태를 나타냅니다. 그리고 나서 변수를 초기화하고 console.log를 다시 호출하면 올바른 값인 “Hello, world!”가 출력됩니다.

함수 초기화 예제

sayHello(); // Hello, world!

function sayHello() {
  console.log("Hello, world!");
}

위 예제에서는 sayHello라는 함수를 선언하고 초기화하기 전에 바로 호출하고 있습니다. 이 역시 함수가 호이스팅되어 이미 선언되었으므로 함수 호출이 가능합니다. 그 결과로 “Hello, world!”가 출력됩니다.

호이스팅 주의사항

호이스팅은 편리한 기능이지만 잘못 사용할 경우 오류를 발생시킬 수 있습니다. 따라서 호이스팅을 이용한 초기화를 할 때는 몇 가지 주의사항을 알고 있어야 합니다.

  1. 변수 선언 시 초기화를 함께 해주는 것이 좋습니다. 호이스팅은 선언 부분만 끌어올리기 때문에 초기화를 따로 하지 않으면 undefined가 할당됩니다.

  2. 함수 표현식(function expression)의 경우 호이스팅이 되지 않으므로 함수를 선언할 때 주의해야 합니다. 이 경우 변수 호이스팅은 되지만, 초기화는 호이스팅되지 않으므로 함수를 호출하기 전에 반드시 변수에 할당해야 합니다.

결론

자바스크립트의 호이스팅 효과를 이용하면 변수나 함수를 선언하기 전에 사용할 수 있어 초기화 작업을 편리하게 할 수 있습니다. 하지만 호이스팅을 사용할 때는 주의해야 할 사항들이 있으므로, 적절히 활용하여 코드를 작성해야 합니다.