JavaScript

호이스팅(Hoisting)

ahleum 2022. 4. 18. 19:16

호이스팅이란?

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

 

        함수가 실행되기 전에 안에 있는 변수들을 범위의 최 상단으로 끌어올리는 것

        호이스팅시 변수의 선언과 초기화(undefined으로 ) 같이 시켜버림 

 

const a=7

doble()

const doble = function (){
 	console.log(a*2)
    }
    
      // 에러가 뜨며 나타나지 않는다

doble이라는 함수 표현을 아래에 하게 되면 함수가 선언될 때 아직 생성이 되지 않았기 때문에

함수가 실행되지 않는다.

 

 

const a=7

doble()

function doble(){
 	console.log(a*2)
    }
    
      // 14 출력

하지만 함수 선언으로 표현을 하게 되면 호이스팅이 일어나며 함수가 최상단으로 끌어올려지며 

함수가 실행이 된다.  

 

 

 

그렇기 때문에 호이스팅을 이용하여

함수의 이름을 보고 대략적으로 어떤 함수인지 예상을 할 수 있기 때문에

함수는 아래쪽으로 이동하여 좀 더 읽기 쉽게 작성할 수 있다.