Was Sie sehen, ist das Heben. Obwohl Sie die Variable nach der Verwendung deklariert haben, wird die Variablendeklaration an den Anfang der Funktion verschoben. Wie Sie erwarten würden, überschreiben lokale Variablen globale Variablen und sind daher nicht definiert.
Nehmen Sie das folgende Beispiel:
function hoist(num){
message = "I'm not five"
if(num === 5)
{
var message = "I am five";
}
console.log(message);
}
hoist(5);
console.log(message);
Die conosle.log
nach Aufruf der Funktion eine Ausnahme auslöst. Ohne Hochfahren würde die erste Zuweisung an die Variable message
eine globale Variable erzeugen, tut dies aber nicht. Die Variablendeklaration wird nach oben verschoben, sodass die Zuweisung zur Nachricht in der lokalen Variablen erfolgt und keine globale Deklaration erstellt wird.
https://jsfiddle.net/Ldbhtv3v/
Lesen Sie über 'variable hissen '. Die Ausführung wird wie "Funktion Gefängnis() { var regular; console.log (regulär); Variable = 'WERT'; } ' – Rayon