Para variaveis essa regra se aplica na maioria das linguagens acredito. No JS em especifico você pode declarar funções abaixo e ele conseguira encontrar em tempo de execução, diferente de C por exemplo.
Mas no seu exemplo das variáveis, como a variável raio está declarada depois da variável diâmetro, o valor dela sera undefined (no momento do calculo)
var pi = 3.14159;
var raio = 10;
var diametro = raio * 2;
Tente assim e deve funcionar.