Se tratando de funções, sim. Você pode colocar variáveis antes ou depois das declarações de funções. No entanto, isso só funciona especificamente para funções. Se você tentar fazer qualquer outra coisa antes dessas declarações de variáveis, o JavaScript vai retornar um erro.
Tenta fazer isso antes de qualquer função e das variáveis, você receber um erro:
var imc = pesoFlavio / (alturaFlavio * alturaFlavio);
console.log(imc);
ou isso:
console.log(calculaIMC(alturaFlavio,pesoFlavio));
function calculaIMC (altura,peso) {
var imc = peso / (altura * altura);
return imc;
}
var pesoFlavio= 76;
var alturaFlavio= 1.71;
var pesoAmigo= 68;
var alturaAmigo= 1.72;
Isso acontece porque as variáveis, como a pesoFlavio, por exemplo, está no Global Scope (que podem ter acesso global). Quando eu digo que elas podem ter acesso global, quero dizer na verdade que as Funções tem acesso a elas.
As funções tem acesso a variáveis das seguintes formas:
- Por argumentos (calculaIMC(alturaAmigo,pesoAmigo));
- Por Scope Chain. Funções podem acessar váriaveis de fora do Function Scope dela.
De outra forma, funções tem o seu próprio espaço. Se você declarar uma variável dentro de uma função, e tentar acessar ela sem estar dentro das chaves { }, você vai receber um retorno com undefined do JavaScript.
Por exemplo, tente acessar a variável imc fora da função calcularIMC().
function calculaIMC(altura,peso){
var imc=peso/(altura*altura);
mostra("O imc calculado é ")+imc;
}
console.log(imc)
Mas enfim, a resposta é não. Isso é uma má prática. Não coloque variáveis em ordem só porque é bonito ou organizado. Outras pessoas vão ler o teu código e não vão entender o que exatamente todas essas variáveis fazem no final do teu código. Fora que se tu quiser transformar elas em outra coisa, você não vai poder. Se você tiver ainda com dúvida onde colocar as variáveis do teu código, declare no topo do programa, especialmente as variáveis que você quer reutilizar mais tarde.
JavaScript não lê o teu código de baixo pra cima, mas ao contrário. Sempre começa do topo para baixo ↓