Просто чтобы уточнить точку на КАК. Я был удивлен, учитывая (правильный) ответ @ CertainPerformance, что приведенный ниже код привел к значению "a", являющемуся "перезаписанным".
let a = 'overwrite me';
let x = () => {
a = 'overwritten';
return 7;
}
NaN === x();
alert(a);
Но, внимательно прочитав отрывок, я понял, что typeof (x ()) вызывается за кулисами, что может привести к перезаписи.
Другими словами, это не короткое замыкание в полном смысле этого слова.