molily: Seltsamer Effekt!

Beitrag lesen

Ich meine einmal irgendwo gelesen zu haben, dass es guter Schreibstil sei, wenn man (lokale) Variablen am Beginn einer Funktion deklariert, anstatt "mittendrin" plötzlich var x = irgendwas stehen zu haben.

Zumindest propagiert Douglas Crockford das in seinen »Good Parts« und in JSLint. Der Hintergrund ist das angesprochene Hoisting von Variablendeklarationen, welches zu Verwirrungen führen kann. (Aus demselben Grund lehnt er Funktionsdeklarationen gänzlich zugunsten von Funktionsausdrücken ab.) Diese klare Regel soll, wie du auch sagst, zudem dazu führen, dass man das Deklarieren lokaler Variablen nicht vergisst. Ein Argument dagegen hat dedlfix schon genannt.

Guter Schreibstil ist insofern Ansichtssache. Man kann Hoisting auch als Feature verwenden, wenn man es einmal verstanden hat. Eine Variable erst bei ihrer Benutzung zu deklarieren, erlaubt es ferner, in sich geschlossene Codeblöcke ohne Beachtung der verwendeten Variablen herumzuschieben. Andererseits sollte eine Single-Purpose-Methode ohnehin nie so lang sein, dass zwischen Variablendeklarationen am Anfang und der Verwendung viel Code steht. Man sollte die Variablendeklarationen immer im Blick haben.

Mathias