728x90

🚨 호이스팅 Hoisting

함수 선언부가 유효범위 최상단으로 끌어올려지는 현상이다. 

 

📍 함수 표현과 함수 선언일 때 차이

😢 함수 표현일 때는 함수 선언부가 함수 호출보다 뒤에 올 때 에러가 발생하지만

const a = 7

double()

const double = function () {
  console.log(a * 2)
}

😊 함수 선언일 때는 호이스팅이 발생해서 정상적으로 작동된다.

const a = 7

double()	// 함수 실행

function double() {
  console.log(a * 2)
}	// 함수 선언부

 


📍 언제 유용할까?

로직이 많을 때 함수가 호출되는 부분을 찾아 해석하기가 어려울 수 있다. 이때 호이스팅을 이용하면 로직을 해석하기 쉬워진다.
함수명만 보고도 로직을 추측할 수 있도록 상단에 함수 실행을 하고 최하단 부분에 함수 선언부를 위치시키면 호이스팅이 발생해 함수 선언부가 최상단으로 끌어올려져 함수가 정상적으로 실행된다.

 

728x90
+ Recent posts