Anche gli esempi che hai dato sembrano inutilmente prolissi.
Tuttavia c'è una differenza importante tra javascript e Java.
In javascript, le dichiarazioni vengono issate all'inizio di una funzione indipendentemente da dove si trovano nella funzione che le hai posizionate. L'ambito dei simboli è diverso da Java.
function atest() {
console.log(a);
var a = 1;
}
Produce 'indefinito' nella console javascript, in un browser. a è dichiarato ma non inizializzato.
Ma
function atest2() {
console.log(a);
}
Produce un "Errore riferimento non rilevato" a meno che non esista una proprietà a sull'oggetto predefinito, ad es. window.a
in un browser.
Forse il tuo predecessore voleva ricordare a se stesso che le dichiarazioni sono valide dall'inizio della funzione o dell'unità / file di script.
L'idea di "dichiararlo dove è necessario" non funziona come in Java. Le parentesi graffe non controllano, da sole, il raggio d'azione. Ad esempio, una variabile dichiarata all'interno di un ciclo for è visibile al di fuori del ciclo for.
Tuttavia è ancora molto comune vedere le dichiarazioni in cui una variabile viene utilizzata per la prima volta, in javascript.
Hai chiesto delle convenzioni. C'è una convenzione di codifica promossa da Crockford per mettere tutte le dichiarazioni all'inizio della funzione o del file.
"JavaScript does not have block scope, so defining variables in blocks can confuse programmers who are experienced with other C family languages. Define all variables at the top of the function."
Da Convenzioni sul codice di Crockford
Crockford ha cambiato alcune delle sue opinioni dopo che ha veramente fatto i conti con Javascript (vedi le sue opinioni sull'ereditarietà in continua evoluzione, per esempio). Non so se ha cambiato le sue opinioni sulle dichiarazioni.
Posso dire leggendo un sacco di codice della libreria popolare che non è del tutto comune seguire il consiglio di Crockford riguardo alla dichiarazione all'inizio di una funzione. Vedo un sacco di dichiarazioni al primo utilizzo, e penso che sia mainstream per Javascript oggi.