Fall 1: Der folgende Code alarmiert , wie es sollte:Wann haben globale Variablen Vorrang vor Funktionsumfang in JavaScript?
var globalId='10';
function check(){
alert(globalId);
}
check();
Fall 2: aber diese nächste Code-Benachrichtigungen undefined:
var globalId='10';
function check(){
alert(globalId);
var globalId;
}
check();
Für Fall 2 die Lösung ist:
var globalId='10';
function check(){
var globalId; /**moved to top of the function due to hoisting and has an initial value of undefined. Hence, alert(globalId) return undefined. **/
alert(globalId); //undefined
var globalId;
}
check();
Meine Frage ist jetzt, wie geht in Fall 1 globalId
den Wert von 10
hat?
Wenn es keine lokale gibt, beginnt es nach außen zu schauen, bis es zu Globals kommt. – dandavis
Weil Sie im ersten Fall keine Scope-Level-Variable deklariert haben. –
Weil Sie die Variable var im Case 2 mit dem Präfix 'var' innerhalb der Funktion ... – pirs