Есть. Все есть.
У функции inner есть ссылка на внешний скоуп, то есть на ту область видимости, в которой эта функция была определена. Сначала интерпретатор будет искать переменную answer в локальной области видимости функции inner и если не найдет, переключится на область видимости родительской функции, это возможно благодаря механизму замыканий
Я читал, что в жс есть компилятор с праворукой и леворукой проходкой по коду и он передает токены, собранные лексически грамматически в движок жс