함수 호이스팅

정태민·2023년 1월 10일
0

회사업무

목록 보기
2/17

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

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

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

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

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

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

profile
퇴근후 30분 출근전 30분

0개의 댓글