Hallo,
var i=42;
var j=55;
for(var i=0,j;i<5;i++) j=i;
alert(i+" "+j);
>
> liefert "5 4".
>
> Gut zu wissen.
Ja, und nicht nur das, sondern sogar
~~~javascript
( function () {
i=42, j=55; // i,j global?
for(var i=0; i<5; j=++i){} // i lokal?
}
)(); alert([ String(window.i), j ]); // u confused?
gibt "undefined,5" aus, genau wie
( function () {
i=42, j=55; // i,j global?
for( i=0; i<5; j=++i) {}
var i; // i lokal!
}
)(); alert([ String(window.i), j ]); // u confused?
i ist zuerst nur scheinbar global, wird nämlich dann doch noch mit var
deklariert und deshalb auch nur lokal in der Funktion angelegt, im Unterschied zu j, was wirklich eine globale Variable wird.
Aber
( function(){vari=5; var i; alert(i)} )();
gint auch "undefined
" aus
Gruß, Don P