Javascript — один из самых легковесных и синхронных однопоточных языков программирования.

Всякий раз, когда вы выполняете программу javascript, создается глобальный контекст выполнения, состоящий из двух частей.

Во-первых, часть памяти, также называемая Variable Environment. В этом компоненте переменная или функция хранятся в паре ключ-значение.

Во-вторых, компонент кода также называется Thread of Execution. В этом компоненте код выполняется построчно.

Коды Javascript анализируются дважды. В первый раз, когда он проходит через каждую строку кода, он берет всю переменную и предоставляет ей специальное ключевое слово, называемое undefined. И в случае функции в переменной среды функция хранится не с ключевым словом undefined, а сохраняется с полным написанным фактическим кодом.

Во второй раз, когда он анализирует, он выполняет код построчно и предоставляет желаемое значение переменной. Функция не выполняется этим компонентом до тех пор, пока функция не будет вызвана явно.

В случае Function всякий раз, когда функция вызывается, создается новый локальный контекст выполнения, который следует той же процедуре, что и глобальный контекст выполнения.

Внутри этого параметра контекста выполнения также получает память. После выполнения кода функции этот локальный контекст выполнения удаляется.

И когда весь код javascript выполняется, глобальный контекст выполнения удаляется.