La fonction Javascript de délimitation de l'étendue et de levage

Je viens de lire un excellent article sur JavaScript délimitation de l'étendue et de Levage par Ben Cerise dans laquelle il donne l'exemple suivant:

var a = 1;

function b() {
    a = 10;
    return;

    function a() {}
}
b();
alert(a);

À l'aide du code ci-dessus, le navigateur vous alerte en "1".

Je ne sais toujours pas pourquoi elle renvoie la valeur "1". Certaines des choses qu'il dit me viennent à l'esprit comme:
Toutes les déclarations de fonction sont hissés au sommet. Vous pouvez la portée d'une variable à l'aide de la fonction. Ne cliquez pas pour moi.

OriginalL'auteur dev.e.loper | 2011-09-21