Лексическое окружение.
В функции внутри ее переменные var или let - внутренний объект и его разные свойства, все это создастся при запуске.
Так сказать это "глобальные переменные" или еще проще "объект из данных".
В случае запуска функция делает объекты или объект, вносит туда некие свойства, переменную или функцию. Выполнение операции происходит в порядке, как у глобальной переменной, в свою очередь это служит лексическим окружением. Но ко всему прочему объект LexicalEnvironment существует изнутри в коде, и доступа к нему нет.
Выполнение функции происходит так, при работе с переменной, с самого начала нужно найти переменную LexicalEnvironment в случае отсутствия оной происходит поиск глобальных переменных.