ES6 Overview in Bullet Points
&gt; Temporal Dead Zone - Attempts to access or assign to foo within the TDZ (before the let foo statement is reached) result in an error<p>Can anybody explain why &quot;let&quot; variables are hoisted to the start of block given this Temporal Dead Zone exists?  Is it an artifact of modern JS runtimes?<p>And given the TDZ what practical benefit does knowing that the variable is technically hoisted provide?