지식 정리 📝
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로 선언하기 때문에 최근 들어서는 크게 신경 쓰지 않는 부분이 되었다.