호이스팅

ayleen·2021년 12월 21일
0
post-thumbnail

호이스팅이란?

코드가 실행하기 전 변수선언/함수선언 이 해당 스코프의 최상단으로 끌어올려진 것 같은 현상.




오늘 '호이스팅'이라는 것을 배웠다.
배운것은 아니고 수업시간에 캘린더를 만들다가 발견한 현상인데 선생님께서 설명해주셨다.



'아랫부분이 1순위여서 json이 후순위로 밀려나서 실행되지 않는 상황이 발생한 것'이라고 하셨는데
예를 들어보자면


function func(1){}
func();
function func(2){}
function func(3){}
function func(4){}

위와 같이 작성된 코드가 있다고 할 때, 코드는 위에서 아래로 실행되니 정상적이라면 func(); 부분에서 function func(1){}이 실행되어야 맞다.
하지만 실제로는 내부적으로 우선순위를 자동으로 바꿔서 아래와 같은 순서로 function func(4){}가 실행된다.

function func(1){}
function func(2){}
function func(3){}
function func(4){}
func();




이런 호이스팅 현상을 피하고 싶다면 다른 방법으로 함수를 선언해주면 된다.

let func = function(){}

위와 같은 변수에 담아주는 형태로 함수를 선언해주면 호이스팅을 무시하고 위에서 아래로 순차적으로 코드가 실행된다.

profile
asdf

4개의 댓글

comment-user-thumbnail
2021년 12월 21일

let func =function(a){} 일때 매개변수를 b라고하자 그럼 사용방법은?

1개의 답글