모던자바스크립트 스터디 6일차이다.
15장 let, const 키워드와 블록레벨 스코프
16장 프로퍼티 어트리뷰트
오늘은 위 단원들을 공부하고 모르는것을 정리했다.
궁금증
스코프의 시작지점부터 초기화 시작 지점까지 변수를 참조할 수 없는 구간을 일시적 사각지대(TDZ)라고 한다.
그렇다면 TDZ를 만든 이유가 뭘까?
배경
우선, 에디션 3까지는 EMCAScript에 예외가 존재하지 않았다는 점을 언급해야 한다.
var와 let이 도입되었을때부터 예외가 시작된것이다.
즉, 이전에는 예외가 없었는데, 자바스크립트가 발전함에 따라서 에러가 생기기 시작했다는 것이다.
이유
그렇다면 TDZ를 왜 만든것인가?
1. 변수가 선언되기 전에 변수에 액세스할 수 있다는 것은 이상한 것이기 때문에
2. let과 const가 예상치 못한 방식으로 동작하지 않도록 하기 위해
3. 변수의 값이 undefined선언 이전에 있는 경우 런타임에 적용하는 메커니즘인 Guards와 충돌 가능성을 막기위해
참고
TDZ를 만든이유
https://stackoverflow.com/questions/42718257/why-does-the-temporal-dead-zone-exists
why is there TDZ?
https://2ality.com/2015/10/why-tdz.html
'JaveScript > JaveScript' 카테고리의 다른 글
모던자바스크립트 19, 20장 스터디 (0) | 2023.11.22 |
---|---|
모던자바스크립트 17, 18장 스터디 (0) | 2023.11.21 |
모던자바스크립트 13, 14장 스터디 (0) | 2023.11.19 |
모던자바스크립트 11, 12장 스터디 (0) | 2023.11.18 |
모던 자바스크립트 9, 10장 스터디 (0) | 2023.11.17 |