지식 정리 📝

20221010 호이스팅

엄성준 2022. 10. 10. 22:09

호이스팅: 변수를 선언하고 초기화했을 때, 선언 부분이 최상단으로 끌어올려지는 현상을 말한다.

 

호이스팅은 자바스크립트 인터프리터가 코드를 읽는 방식이며, 이를 이해해야 원치 않는 'undefined'가 출력되는 것을 막을 수 있다.

 

가령 아래와 같은 코드가 있을 경우  👇

1
2
3
4
5
console.log(x);
 
var x = 1;
 
console.log(x);
cs

위 코드의 결과값은

console.log(x);

👉 undefined   참조 에러가 발생하지 않고 'undefined'가 출력된다.

 

위의 문제점을 해결하려면 let을 사용하여 변수를 선언해야 한다. let을 사용한다고 호이스팅이 일어나지 않는 것이 아니라,호이스팅이 일어나 스코프 내 최상위로 끌어올려지지만, 'undefined'를 할당하지 않기 때문에 'undefined'가 출력되는 것이 아니고 참조 에러가 발생하게 된다.

 

ES6 이후로 실제 협업에서는 var 키워드는 절대로 쓰이지 않으며 99% 이상의 경우 모든 함수를 무조건 const와 arrow syntax로 선언하기 때문에 최근 들어서는 크게 신경 쓰지 않는 부분이 되었다.

 

'지식 정리 📝' 카테고리의 다른 글

20221017 Nullish Coalescing Operator  (0) 2022.10.17
20201014 this 용법  (0) 2022.10.14
20221011 클로저(Closure)  (0) 2022.10.11
20221008 브라우저 렌더링 원리  (2) 2022.10.08
20221007 첫 글  (0) 2022.10.07