function test() {
var x = 0;
if(1) {
var x = 2; //[2]
}
alert(x)
}
test()
> > gibt 2
> >
> > ~~~perl
sub test {
> > my $x = 0;
> > if(1) {
> > my $x = 2; # [1]
> > }
> > print $x;
> > }
> > test()
gibt 0
[1] lässt man hier das my weg, kommt auch 2 raus.
Genau das wollte ich Connie damit vermitteln, my greift immer in einem Scope - hier im Block {} - ohne my ist es das äußere $x.
[2] mich wundert warum Javascript (zumindest im FF ausprobiert) hier nicht meckert... m.E. macht es keinen Sinn "var x" mehrmals innerhalb des gleichen Geltungsbereichs anzugeben, die Console sollte hier wenigstens eine Warnung ausgeben. Oder kann jemand hier einen Nutzen entdecken?
soweit ich weiß hat das Mozilla am Anfang auch gemacht, aber ich vermute mal, das sich zuviele Webdesigner beschwert hatten.
Ich finde auch das:
function eventFunktion(e) {
if(!e) var e = window.event;
}
grausam, wird aber auch nicht moniert.
Struppi.