TDZ,호이스팅,스코프 이게 도대체 뭘까?

hipAn·2022년 9월 23일
0

끄적끄적 성장일지

목록 보기
11/30
post-custom-banner

이번 주제는 개인적으로 이해하는데 굉장한 시간이 필요했다...

다음에도 여러번 반복학습을 꼭 해야 할 부분이다.

느낌은 알겠는데 완벽하게 100프로 나 자신이 이해했다고는 아니라고 내가 느끼고있다.

호이스팅은 간단하게 이야기하자면

변수가 선언되기 전에 호출을해도 호출이 되는것을 이야기하고 이게 가능한 이유는 호이스팅 때문이다.

내가 흔히 쓰는 let이나 const 에서는 적용되지않는데

(TDZ적용) 템포럴 데드 죤~

그렇지않은 var를 사용할경우 변수를 선언하면 그 위치가 호출위치보다 아래에있어도 호출이 가능한것이다.

결론적으로 호이스팅이란 구글의 말을 인용해보면

"자바스크립트 및 액션스크립트 코드를 인터프리터가 로드할 때, 변수의 정의가 그 범위에 따라 선언과 할당으로 분리되어 변수의 선언을 항상 컨텍스트 내의 최상위로 끌어올리는 것을 의미한다."

인것이다.

TDZ는 무엇인지 살펴보자.

우리의 TDZ는 TDZ라는 영역을 지정하는데, 해당 영역에서는

선언 전에 변수를 사용하는 것을 허용하지 않는다고한다.

그런데 왜 var는 선언 전에 사용이 되는것일까?

왜 이렇게 만들었을까 궁금하여 찾아보았는데 여기에 서술할 내용은 아닌듯하니 일단 간략하게 이야기하자면 그냥 var 변수는 선언 전에도 사용할 수 있게 되어있다. 라고만 이해하면 될듯하다.

개인적으로는 변수를 선언하고 사용하는 습관을 들이는게 좋다고 하니 그러기위해 var는 사용하지 않아야겠따..

(var는 뭔가 옛날분들이 쓰는 그런 너낌.? ㅋㅋ)

자 이제 스코프는 무엇인가?

스코프는 무엇인가를 계속해서 찾아 보고있지만 아직 완벽하게 이해가 되지않는다.

일단 무언가 실행되는 범위 라고만 알고있고..

https://ui.toast.com/weekly-pick/ko_20191014?fbclid=IwAR3fiR4wiv8kszL6Fz2KqwHpv-bTL8tNHElRN0q0ky5kpOP5BMqMS0wc-9k

위 링크를 참고하여 반복학습을 하도록하자.

post-custom-banner

0개의 댓글