Javascript에서 호이스팅(Hoisting) 알아보기

Kstyle83 2023. 3. 18. 16:47
반응형

자바스크립트 호이스팅 이해하기

자바스크립트는 대화형 및 동적 웹 사이트를 만드는 데 사용되는 강력한 프로그래밍 언어입니다. 자바스크립트의 독특한 기능 중 하나는 호이스팅입니다. 호이스팅은 변수 및 함수 선언이 컴파일 단계 중에 각각의 범위 상단으로 이동되는 자바스크립트 메카니즘입니다. 이를 통해 개발자는 변수 또는 함수를 선언하기 전에 사용할 수 있습니다.

호이스팅의 유형

자바스크립트에는 변수 호이스팅과 함수 호이스팅 두 가지 유형이 있습니다.

변수 호이스팅

자바스크립트에서 var 키워드로 선언된 변수는 해당 범위 상단으로 호이스팅됩니다. 이는 변수를 선언하기 전에 사용할 수 있다는 것을 의미합니다. 그러나 변수가 값이 할당되기 전에 사용되는 경우 undefined를 반환합니다.

함수 호이스팅

자바스크립트에서 함수 선언도 범위 상단으로 호이스팅됩니다. 이는 함수를 선언하기 전에 호출할 수 있다는 것을 의미합니다. 그러나 함수 표현식은 호이스팅되지 않습니다.

호이스팅 예시

호이스팅이 작동하는 몇 가지 예시입니다.

변수 호이스팅

console.log(x); // undefined
var x = 10;

함수 호이스팅

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

호이스팅이 문제가 될 수 있는 이유

호이스팅은 코드를 이해하기 어렵게 만들 수 있습니다. 변수 또는 함수를 선언하기 전에 사용하면 어디에서 온 것인지 파악하기 어려울 수 있습니다.

또한 호이스팅은 코드를 디버깅하기 어렵게 만들 수 있습니다. 변수 및 함수가 범위 상단으로 이동되면서 호이스팅되므로 호이스팅으로 인한 버그를 찾는 것이 어려울 수 있습니다.

호이스팅을 피하는 방법

호이스팅을 피하려면 항상 범위 상단에서 변수를 선언하는 것이 가장 좋습니다. 이렇게 하면 코드를 읽는 사람에게 변수가 어디에서 왔는지 알기 쉬워집니다.

또한 함수 호이스팅을 피하려면 함수 선언 대신 함수 표현식을 사용해야 합니다. 함수 표현식은 호이스팅되지 않으므로 코드에서 문제가 발생할 가능성이 더 적습니다.

 

호이스팅은 자바스크립트의 강력한 기능 중 하나이며 도움이 되기도 하지만 문제를 일으킬 수도 있습니다. 호이스팅이 작동하는 방식을 이해하고 최선의 방법을 따르면 코드에서 호이스팅과 관련된 문제를 피할 수 있습니다.

반응형