Über var / const, warum funktioniert dieser Code?

9

Ö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

    
CodinCat 29.12.2016, 06:26
quelle

1 Antwort

1

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%     
Achal Saini 29.12.2016 07:31
quelle

Tags und Links