Eu já vi em algum lugar que variáveis devem ser declaradas no inicio da função para facilitar a leitura de código, mas vai de cada um. Eu gosto de declará-las no começo para que não hajam dúvidas do que será utilizado ao longo do script, mas isso não quer dizer que eu já vá declarando as variáveis de uma vez, eu escrevo o código e depois coloco as variáveis lá no começo. Assim evito de deixar criação de variáveis no meio do caminho, deixado mais difícil de encontrá-las depois.
Uma boa prática é usar um normalizador de javascript, que vai te orientar a deixar o código mais elegante como o JSHint (http://jshint.com/) ou o JSLint (http://jslint.com/) para te orientar como você e sua equipe podem deixar seu código mais elegante, seguro, organizado e seguindo um único padrão. Eles ainda podem ser personalizados para se adaptar ao seu código. Mas, escolha apenas um dos dois já que eles são incompactiveis em sua versão padrão.
Ainda existe uma versão mais moderna que é o ESLint (https://eslint.org/demo/), vale a pena dar uma conferida. É possível aplicar algumas extensões para que seu código siga determinados padrões de formatação que vão desde a identação até se é melhor optar por um for
ou um do...while
.
Existe o style guide do airbnb que pode te dar um norte de como escrever um bom javascript (https://github.com/airbnb/javascript) mas é mais voltado para a novas funcionalidades do ES6.
Bons estudos!