728x90
🚨 호이스팅 Hoisting
함수 선언부가 유효범위 최상단으로 끌어올려지는 현상이다.
📍 함수 표현과 함수 선언일 때 차이
😢 함수 표현일 때는 함수 선언부가 함수 호출보다 뒤에 올 때 에러가 발생하지만
const a = 7
double()
const double = function () {
console.log(a * 2)
}
😊 함수 선언일 때는 호이스팅이 발생해서 정상적으로 작동된다.
const a = 7
double() // 함수 실행
function double() {
console.log(a * 2)
} // 함수 선언부
📍 언제 유용할까?
로직이 많을 때 함수가 호출되는 부분을 찾아 해석하기가 어려울 수 있다. 이때 호이스팅을 이용하면 로직을 해석하기 쉬워진다.
함수명만 보고도 로직을 추측할 수 있도록 상단에 함수 실행을 하고 최하단 부분에 함수 선언부를 위치시키면 호이스팅이 발생해 함수 선언부가 최상단으로 끌어올려져 함수가 정상적으로 실행된다.
728x90
'FE' 카테고리의 다른 글
생성자 함수와 ES6 Classes클래스 / 객체의 로직이 동일하게 반복될 때 (0) | 2021.11.06 |
---|---|
타이머 함수 Timeout Interval / 콜백함수 (0) | 2021.11.06 |
즉시실행함수IIFE 사용방법 (0) | 2021.11.06 |
화살표 함수 표현 방법, 사용 조건 (0) | 2021.11.06 |
함수 예약어 / 매개변수parameters와 인수arguments / 반환return / 객체데이터와 메소드method (0) | 2021.11.06 |