22.04.25 호이스팅(Hoisting)

beomhak lee·2022년 4월 25일

javascript

목록 보기
3/12
post-thumbnail

호이스팅(Hoisting)

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

호이스팅(hoisting)이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미합니다. var로 선언한 변수의 경우 호이스팅 시 undefined로 변수를 초기화합니다. 반면 let과 const로 선언한 변수의 경우 호이스팅 시 변수를 초기화하지 않습니다.


일반적으로 함수선언부가 아래에있으면, 에러가 뜬다.

ex) 함수 표현식으로 작성하면 에러가 발생

const a = 7 // TypeError 발생

double()

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

하지만 이경우에는 오류가 안뜬다.
ex) 함수 선언식으로 작성하면 호이스팅의 대상이된다.

const a = 7

double()

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

0개의 댓글