본문 바로가기

Front-End/ES6

[ES6] Temporal dead zone

 

 

 

ES6의 정석 - 노마드 코더 Nomad Coders

ES6, ES7, ES8

nomadcoders.co

 

- temporal dead zone은 let과 같이 소개되는 개념임

- temporal dead zone이 없을 때는 

 

 

 

- hoisting은 JS가 프로그램 실행 전 어딘가로 이동시키는거임(무조건 위에서 아래로 실행되지않음)

- 이렇게 코드를 작성하면 JS 내부에서 hoisting 처리를 하는데 var을 제일 위로 올려쥼

- hoisted는 그들이 제일 위로 올라가는 걸 의미함

- 위 멍청한 코드는 애플리케이션 실행시 error 처리를 하지 않음

 

- 그래서 let을 써야함

- 위 코드에서 var 대신 let을 사용하면 error을 발생시켜서 변수가 정의되지 않았다고 에러를 발생시키고, hoisting 처리를 하지 않음 

- 정의하지 않았는데 let에 접근하면 error가 나게 되고 deadzone이 됨. (멍청한 짓을 엄격하게 막아줌) = let의 temporal deadzone

 

- var을 사용하게 되면 JS는 그대로 실행되고, undefined만 출력함

 

 

 

 

 

 

'Front-End > ES6' 카테고리의 다른 글

[ES6] Block scope  (0) 2020.08.26