티스토리 뷰
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 |