Передается ли переменная во вложенную функцию?
Ничего не никуда передаётся, это называется замыканием, скрытое свойство [[scope]] внутренней функции указывает на лексическую область видимости внешней функции (оно закрепляется в месте рождения функции), следовательно не найдя нужную переменную в своей лексической области видимости, она опирается на свой [[scope]]. console.log(a) - внутренней функции выведет 5
Вот полезный материал по этому 
https://habrahabr.ru/post/149526/