호이스팅: 변수를 선언하고 초기화했을 때, 선언 부분이 최상단으로 끌어올려지는 현상을 말한다.
호이스팅은 자바스크립트 인터프리터가 코드를 읽는 방식이며, 이를 이해해야 원치 않는 '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 |