Hallo
Bin soeben gestolpert. Im folgenden (vereinfachten) Code habe ich erwartet, dass zuerst '0' angezeigt wird – da foo ja lokal definiert ist – dann aber '2', da der Block mit 'var foo' gar nie ausgeführt wird!?
var foo = 0;
function test (bar) {
if (bar) {
var foo;
foo = 1;
} else {
foo = 2;
}
}
test(true);
alert(foo);
test(false)
alert(foo);
Die Zeile var foo
wird offenbar in jedem Fall ausgeführt. Wieso ist das so? Was habe ich bis jetzt verpasst – oder bin ich von allen guten Geistern verlassen?
Danke für die Antworten.