Hoisting

이주형·2022년 11월 24일
0

backend

목록 보기
23/53

Hoisting

hoist
1.(흔히 밧줄이나 장비를 이용하여) 들어 [끌어]올리다.
2.(화물장애인을 들어올리기 위한) 승강 장치

호이스팅이란 변수나 함수가 어디서 선언이 되든지간에
최상단에 위치하게 되어 동일 스코프 에서는 어디서든 참조 할수 있다는 것을 말한다.

string("가나다", "라마바");
function string(str1, str2)
{
return str1 + str2;
}
결과 : 가나다라마바

선언 된적이 없는 것을 참조하려고 할때 String을 실행 시점에 function String이 선언되어있지 않으므로 에러가 나는 상황이지만 정상동작 한다.
String 함수를 상단으로 올려서 참조 할수 있도록 해줬다.
함수 선언은 동시에 초기화가 이루어 지기 때문에 참조 뿐만 아니라 실행도 가능하다.
이를 호이스팅 이라고 한다.

호이스팅 규칙

호이스팅은 크게 함수 호이스팅변수 호이스팅으로 나뉜다. 그리고 해당 개념에 관한 규칙을 요약하면 다음과 같은 항목으로 이루어진다.

선언된 함수는 상단에서 참조, 호출이 가능하다.
선언된 var 는 상단에서 참조, 할당이 가능하다.
선언된 let , const 는 상단에서 참조, 할당이 불가능하다.

참조
https://www.appletong.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%ED%98%B8%EC%9D%B4%EC%8A%A4%ED%8C%85-Hoisting-%EC%9D%B4%EB%9E%80-%EC%95%84%EC%A3%BC-%EC%89%BD%EA%B2%8C-%EC%84%A4%EB%AA%85

0개의 댓글