Warum führt dieser Code nicht zu einem ReferenceError?
if(true) {
tmp = 'abc';
console.log(tmp);//which should throw referenceError but not
let tmp;
console.log(tmp);
tmp = 123;
console.log(tmp);
}
Dieser Code ergibt
abc
undefined
123
Warum gibt das erste console.log (tmp) keinen Fehler aus?
warum sollte es einen referenceError werfenassen Sie uns in ECMAScript 2015 die Variable an den oberen Rand des Blocks setzen. Das Verweisen auf die Variable in dem Block vor der Variablendeklaration führt jedoch zu einem ReferenceError. Die Variable befindet sich vom Beginn des Satzes bis zur Verarbeitung der Deklaration in einer "temporären Totzone".
as Problem sind die Einstellungen in der Bibel, denke ic Also, vielleicht ist es ein Bug von Babel?https: //github.com/babel/babel.github.io/issues/82