Precisa de explicação sobre a questão do escopo em javascript
Eu tenho esse código
var Variable = "hello";
function say_hello ()
{
alert(Variable);
var Variable = "bye";
}
say_hello();
alert(Variable);
Agora, quando li esse código pela primeira vez, pensei que ele alertaria "olá" duas vezes, mas o resultado é que ele alerta "indefinido" na primeira vez e "olá" na segunda vez. alguém pode me explicar por que?