Ich verstehe, dass alle Variablen hochgezogen werden, aber die Zuweisungen sind nicht (egal, Funktionen für diese Frage - das macht für mich Sinn - related SO).Welche Bedeutung hat das variable Heben?
Aber ich sehe nicht, wie sich das auf den Code auswirkt. Ich schrieb eine Geige zum Experimentieren.
Was ist der Vorteil, wenn Sie die Variable hissen und geben Sie den Wert von undefined, was der Fall zu sein scheint.
var a = 1;
function foo (proxy){
print(proxy);
}
function print(out){
document.getElementById("out").innerHTML = out;
}
// foo("you")
print(d); // undefined
var d = 4;
print(d); // 4
https://jsfiddle.net/6ue7052k/1/
Entfernen Sie die 'var' vor' d' und der erste zu druckende Aufruf löst eine Ausnahme aus. –
Warum wurde diese Frage wieder geöffnet? Es ist ein klares Duplikat von [Warum hostet JavaScript Variablen?] (Http://stackoverflow.com/questions/15005098/why-does-javascript-hoist-variables) –
@squint Es schien nicht wirklich ein komplettes Duplikat zu sein mir. Warum es sie anhebt, ist eine andere Frage, wie es den Code beeinflusst. – Paulpro