티스토리 뷰

javascript

Hoisting

kmj24 2021. 4. 20. 14:13

Hoisting

 - 호이스팅은 모든 선언을 (var, let, const, function 등)을 해당 유효범위의 가장 위로 끌어올린다는 느낌으로 이해하면 된다.

 - 주의할 점으로 물리적으로 코드의 상단으로 옮겨지는 것은 아니다.

 - 따라서 메모리에서의 변화는 없다. 코드에서 입력한 위치와 정확히 일치한 곳에 있다.

 - 호이스팅이 발생하는 이유는 변수의 생성과 초기화가 분리되어 진행되기 때문이다.

 - var, let, const 모두 hosting이 적용 되며, let, const 키워드는 TDZ에 의한 제약으로 변수 선언 이후에 사용 가능하다.

(var, let, const 키워드에 대한 정리 kmj24.tistory.com/70)

console.log(hoisting); //undefined 
var hoisting = "호잇";
console.log(hoisting); //"호잇"

첫번째 라인에서 hoisting을 출력하려 해보았지만, 할당 이전에 출력을 시도하였으므로 undefined가 뜬다.

세번째 라인에서 hoisting을 출력하면 할당 이후 출력을 시도했으므로, 정상적으로 출력이 된다.

 

'javascript' 카테고리의 다른 글

Event Loop  (0) 2021.05.11
closer function  (0) 2021.04.28
Javascript 오버라이딩  (0) 2021.04.12
변수 선언 키워드(const, let, var)  (0) 2021.04.07
[JS] Scope  (0) 2021.03.29
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함