Alcance y elevación de la función de JavaScript

Acabo de leer un gran artículo sobre Alcance y elevación de JavaScript por Ben Cherry en el que da el siguiente ejemplo:

var a = 1;

function b() {
    a = 10;
    return;

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

Utilizando el código anterior, el navegador alertará "1".

Todavía no estoy seguro de por qué devuelve "1". Algunas de las cosas que dice le vienen a la mente como: Todas las declaraciones de funciones se colocan en la parte superior. Puede abarcar una variable usando la función. Todavía no hace clic para mí.

Respuestas a la pregunta(15)

Su respuesta a la pregunta