Obwohl beide gültig sind, hält die Verwendung der zweiten Option unerfahrene Entwickler davon ab, überall var-Anweisungen zu platzieren und Probleme beim Heben zu verursachen. Wenn es oben in der Funktion nur eine Variable pro Funktion gibt, ist es einfacher, den Code als Ganzes zu debuggen. Dies kann bedeuten, dass die Zeilen, in denen die Variablen deklariert sind, nicht so explizit sind, wie manche möchten.
Ich bin der Meinung, dass sich ein Kompromiss lohnt, wenn es bedeutet, einen Entwickler davon abzuhalten, "var" überall dort abzulegen, wo er Lust hat.
Die Leute mögen sich auch über JSLint beschweren, aber viele davon zielen nicht darauf ab, Probleme mit der Sprache zu beheben, sondern schlechte Gewohnheiten der Codierer zu korrigieren und damit Probleme im Code, den sie schreiben, zu verhindern. Deshalb:
"In Sprachen mit Blockbereich wird normalerweise empfohlen, Variablen an der Stelle der ersten Verwendung zu deklarieren. Da JavaScript jedoch keinen Blockbereich hat, ist es sinnvoller, alle Variablen einer Funktion oben in der Funktion zu deklarieren empfohlen, eine einzelne var-Anweisung pro Funktion zu verwenden. " - http://www.jslint.com/lint.html#scope