JS에는 호이스팅이라는 개념이 있다.
호이스트가 끌어올리다라는 뜻인데, 뜻처럼 변수나 함수를 맨위로 끌어올리는 것을 말한다.
이 때, 할당까지 끌어오리는 것은 아니고 선언만 끌어 올린다.
그래서 아래 코드가 있으면 결과가 에러가 나는 것이 아니라, a는 undefined가 되어 보여진다.
var를 사용할 경우 호이스팅으로 많은 혼란을 초래할 수 있다. 이 뿐만 아니라 var는 같은 함수로 중복 선언이 가능하다.
아래와 같은 코드로 사용되어지면 개발에 혼란을 초래할 여지가 상당히 높다.
이러한 문제를 보완하기 위해 es6부터 나온것이 let이다. let은 호이스팅이 되어지지만 TDZ(Temporal Death Zone)에 할당되어 선언되기 전에 사용하려고 해도 사용할 수 없다.
위와 같은 맥락이지만 에러가 발생한다.
결국 이런 자바스크립트의 호이스팅이란 문제를 개선하기 위해 let이 나왔고, let을 사용할 때는 위 점을 기억하며 사용하자!
요약.
1. 자바스크립트에는 호이스팅이 있다.
2. var를 사용하면 혼란이 온다.
3. let을 사용하자.
728x90
'개발 > STUDY' 카테고리의 다른 글
렉시컬스코프와 클로저 (0) | 2024.05.22 |
---|---|
useState를 사용할 때는 왜 const를 쓰는가? (0) | 2024.05.22 |
면접 예상 질문을 통한 React 기본 개념 정리 (0) | 2024.05.17 |
필기 공부 (0) | 2024.05.13 |
[웹 개발 종합반] 1주차 - html, css, 정적 웹페이지 배포 (0) | 2023.03.23 |