«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
Recent Posts
Recent Comments
관리 메뉴

뉴히의 개발 로그

Javascript 호이스팅이란? 본문

개발일지/TIL

Javascript 호이스팅이란?

뉴히 2023. 10. 10. 19:36

Javascript 호이스팅이란?

 

함수가 실행 되기 전에 안에 있는 변수들을 모두 범위에 최상단에 올리는 개념입니다. 이 호이스팅이라는 개념으로 인해서 var의 경우는 변수를 선언, 할당하기 전에 불러와도 에러가 나지 않고 아래 선언되어 있다면 undefined라고 뜨게 됩니다. 호이스팅시 변수의 선언과 초기화를 같이 해버리기 때문에 선언은 되어있는걸 알지만 값은 할당 전이기 때문입며 값 할당 후에 선언을 해도 undefined라고 뜹니다. 같은 변수명으로 재선언도 가능합합니다. 함수만 지역변수로 호이스팅 되고 나머지는 함수안에 변수도 다 전역변수로 상단으로 올려버려 block scope밖에서도 접근이 가능합니다. 이러한 문제들로 ES6업데이트시 나온게 let이고 let 또한 호이스팅이 되지만, 선언/할당전 접근시에는 TDZ 에러가 발생하고 var로 인해 발생했던 문제들도 에러를 보여줍니다.