Все в Java Script является контекстом выполнения.
Представьте контекст выполнения в виде контейнера. Контейнер состоит из двух частей: памяти и кода.
Когда начинается выполнение программы, JavaScript проходит через код и создает память для всех переменных и функций в коде. Вначале, поскольку ни одна из переменных не инициализирована, значения переменных сохраняются как «неопределенные». тогда как для функций код хранится как есть.
Данные хранятся в памяти в виде пар ключ-значение.
Как только выделение памяти завершено, начинается выполнение кода, где каждая строка выполняется по одной в стеке вызовов.
Когда встречается инициализация переменной, ключевое слово undefined заменяется значением переменной.
Если встречается вызов функции, то создается новый контекст выполнения функции, и описанный выше процесс повторяется, как выделение памяти и выполнение кода.
После завершения выполнения контекст выполнения удаляется сборщиком мусора, а память освобождается.
Первоначально опубликовано на https://shilpathotapages.notion.site.