개발/STUDY

var와 let 그리고 호이스팅

송디 2024. 5. 22. 09:57

JS에는 호이스팅이라는 개념이 있다. 

호이스트가 끌어올리다라는 뜻인데, 뜻처럼 변수나 함수를 맨위로 끌어올리는 것을 말한다.

이 때, 할당까지 끌어오리는 것은 아니고 선언만 끌어 올린다. 

그래서 아래 코드가 있으면 결과가 에러가 나는 것이 아니라, a는 undefined가 되어 보여진다. 

 

var를 사용할 경우 호이스팅으로 많은 혼란을 초래할 수 있다. 이 뿐만 아니라 var는 같은 함수로 중복 선언이 가능하다. 

아래와 같은 코드로 사용되어지면 개발에 혼란을 초래할 여지가 상당히 높다. 

 이러한 문제를 보완하기 위해 es6부터 나온것이 let이다. let은 호이스팅이 되어지지만 TDZ(Temporal Death Zone)에 할당되어 선언되기 전에 사용하려고 해도 사용할 수 없다. 

위와 같은 맥락이지만 에러가 발생한다. 

 

결국 이런 자바스크립트의 호이스팅이란 문제를 개선하기 위해 let이 나왔고, let을 사용할 때는 위 점을 기억하며 사용하자! 

 

 

요약. 

1. 자바스크립트에는 호이스팅이 있다. 

2. var를 사용하면 혼란이 온다. 

3. let을 사용하자. 

728x90