bei dieser Frage geht es mir nicht um Geschwindigkeit sondern nur ums Prinzip.
if (...) {
var a = 1;
}
else {
var a = 2;
}
Das Problem ist, dass JS keinen blockscope hat, sondern nur einen functionscope. D.h. die Deklaration innerhalb einer Funktion erfolgt hier vom Prinzip zweimal. Auch wenn es tatsächlich zur Laufzeit nur einmal passiert.
Natürlich kann ich das var a auch vor das if-else schreiben.
Da ich viel mit Perl mache (wo es Blockscoping gibt), habe ich mir angewöhnt die Variabel auch in JS so zu deklarieren. Ob das wirklich einen entscheidenen Geschwindigkeitsvorteil bringt weiß ich nicht.
Struppi.