[1]
This explains why the program in footnote undefined of chapter 1 goes wrong. The time between creating the binding for a name and evaluating the declaration of the name is called the temporal dead zone (TDZ).
3.2.4  
Internal Declarations