반응형
호이 스팅이란?
스코프 안의 변수들을 스코프 최상단으로 올리는 것
자바스크립트에는 var, let, const 총 3가지의 변수, 상수 타입이 있습니다.
console.log(score);
score = 5;
score = 80;
const score;
console.log(score);
해당 코드의 출력 결과는
undefined
80입니다.
다른 언어였으면 첫 줄에서 에러가 났을 테지만, 자바스크립트 var변수에서는 호이 스팅이 일어나 에러 없이 코드가 수행되게 됩니다.
위의 코드에서 var 부분을 const, let으로 바꿀 경우 에러가 나게 됩니다. const, let이 호이 스팅이 안 되는 것이 아니라 const, let 같은 경우에는 호이 스팅은 일어나지만, 변수 초기화,값 할당부분에서 문제가 있어서 에러가 납니다.
(변수는 선언 -> 초기화 -> 할당 과정을 거침)
(값을 할당하거나, 재할당할때, 메모리는 쓰던 것을 재활용 하지않고 새로 할당함. 쓰던 메모리는 갈비지컬렉터가 처리)
결론
호이스팅은 가독성을 떨어뜨리므로 사용을 지양합니다.
최대한 let과 const를 이용합시다.
호이스팅은 런타임 이전 단계에서 일어납니다.
반응형
'공부 정리 > 웹(Web)' 카테고리의 다른 글
[CSS] box-sizing (0) | 2022.01.24 |
---|---|
[CSS] position (0) | 2021.12.21 |
[자바스크립트] Array.some() (0) | 2021.12.14 |
[자바스크립트] 단축 평가 (0) | 2021.11.04 |
[자바스크립트] 정적타입언어 vs 동적타입언어 (0) | 2021.10.04 |
댓글