Like var, let is hoisted to the top of its block β but unlike var, accessing it before the declaration line throws a ReferenceError. The period between the start of the block and the declaration line is called the Temporal Dead Zone (TDZ).
Challenge: Write letTDZ() that:
eval to run a function that accesses x before declaring it with let'ReferenceError' if the error is caught, or 'no error' otherwise