[JS] 함수 호이스팅

이한형·2022년 10월 21일
0

호이스팅

함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효 범위의 최상단에 선언하는 것을 말한다.

함수 호이스팅

(function () {
	function test() { return 1 }
  	return test()
  	function test() { return 2 }
})()

위를 실행하면 어떤 결과가 나올까요?
정답은 2가 반환이 됩니다.

처음에는 저도 1이 반환이 되는 결과를 예상을 했었습니다.
자바스크립트의 호이스팅 특성을 생각해보면 반환문 이후에 있더라도 선언문들이 모두 끌어올려져서 실행이 되기 때문에 2가 반환이 됩니다.

호이스팅이라는 개념은 알고 있었지만, 함수 호이스팅이 어떻게 이루어지고 어떤 결과가 나오는지에 대해서 깊게 생각해보지 않아서 몰랐던 문제였습니다.

이번 기회에 호이스팅을 좀 더 깊게 알 수 있었다고 생각을합니다.

profile
풀스택 개발자를 지향하는 개발자

0개의 댓글