Javascript — один из самых легковесных и синхронных однопоточных языков программирования.
Всякий раз, когда вы выполняете программу javascript, создается глобальный контекст выполнения, состоящий из двух частей.
Во-первых, часть памяти, также называемая Variable Environment. В этом компоненте переменная или функция хранятся в паре ключ-значение.
Во-вторых, компонент кода также называется Thread of Execution. В этом компоненте код выполняется построчно.
Коды Javascript анализируются дважды. В первый раз, когда он проходит через каждую строку кода, он берет всю переменную и предоставляет ей специальное ключевое слово, называемое undefined. И в случае функции в переменной среды функция хранится не с ключевым словом undefined, а сохраняется с полным написанным фактическим кодом.
Во второй раз, когда он анализирует, он выполняет код построчно и предоставляет желаемое значение переменной. Функция не выполняется этим компонентом до тех пор, пока функция не будет вызвана явно.
В случае Function всякий раз, когда функция вызывается, создается новый локальный контекст выполнения, который следует той же процедуре, что и глобальный контекст выполнения.
Внутри этого параметра контекста выполнения также получает память. После выполнения кода функции этот локальный контекст выполнения удаляется.
И когда весь код javascript выполняется, глобальный контекст выполнения удаляется.