Öffnen Sie die dev-Konsole (oder in node.js), geben Sie den folgenden Code nach Sequenz ein:
%Vor%Wie Sie sehen, funktioniert es, aber wenn Sie den gesamten Code auf einmal eingeben, erhalten Sie einen Fehler, der meiner Ansicht nach vernünftiger ist
Ich denke, der einzige Unterschied ist das Hochziehen. Wenn Sie den gesamten Code auf einmal eingeben, wird er wie folgt behandelt:
%Vor%Aber ich verstehe nicht, warum es funktioniert, wenn Sie Zeile für Zeile eingeben, auch wenn Sie die erste Zeile überspringen, erhalten Sie einen Fehler wie erwartet
Im globalen Gültigkeitsbereich der Umgebung kann eine Variable unabhängig vom Typ zugewiesen und deklariert werden. Wenn Sie den folgenden Code nacheinander eingeben, funktioniert dies.
%Vor%Wert von z ist jetzt 3
Sagen wir nun, wir führen das alles gleichzeitig aus
%Vor%Wert von z ist immer noch 3
Der Interpreter wird in diesem Fall einen Fehler ausgeben, weil er hier versucht, alle obigen Anweisungen einmal als Block auszuführen und jetzt eine Mehrfachdeklaration für 'z' gefunden hat und somit einen Fehler für den ganzen Block werfen wird und nicht wird führe sogar den ersten Teil aus, zB z = 4;
Die Aussage, wo alles auf einmal ausgeführt wird, entspricht
%Vor%Tags und Links javascript ecmascript-6