함수 호이스팅

정태민·2023년 1월 10일
0

회사업무

목록 보기
2/17

호이스팅을 간단히 이야기하면 변수를 생성할때 선언, 초기화, 할당이 각각 다른 시점에시 이뤄지는 자바스크립트 메커니즘 때문에 선언된 함수들이 해당 범위의 최 상단으로 이동하는 것

함수 호이스팅
일반적인 함수 선언의 경우 선언,초기화,할당이 된 상태로 호이스팅된다.
testHositing(); //함수 선언햇어!!
function testHositing(){
console.log('함수선언했어!!');
}
testHositing(); //함수 선언햇어!!

함수를 변수에 할당하는 함수 표현식으로 정의하면 어떻게 될까?

testHositing(); //함수 선언햇어!!
var testHositing= function (){
console.log('함수선언했어!!');
}
testHositing(); //함수 선언햇어!!

이 경우엔 var는 testHositning은 변수로 호이스팅되고 var 이므로 초기화만 된 상태로 상단에 존재하는데 이를 함수로 사용하려고 하니 타입에러가 발생한다.

개념 자체는 단순하나 일반적으로 함수를 선언하다가 lexical scoping관련 문제가 발생하면 찾기 고생하게되서 함수표현식을 사용하는게 좋은듯하다(!! 지극히 개인적인 경험)

0개의 댓글