Механизм JavaScript создает глобальный контекст выполнения по умолчанию перед запуском любого кода.

Если вы нетехнический человек, который не очень хорошо умеет кодировать и пробует себя в JavaScript. Я рекомендую вам, прежде чем вы начнете изучать продвинутый JavaScript, есть некоторые предварительные условия, с которыми нужно ознакомиться.

Контекст выполнения и стек вызовов

В JavaScript объявленные переменные и функции, не вложенные в другие функции, хранятся движком в глобальном контексте выполнения.

Каждый раз, когда код пишется (не выполняется), создается новый контекст выполнения, называемый глобальным контекстом выполнения, который по умолчанию выполняется моим движком JavaScript. Это также означает, что пока код не будет запущен, он всегда находится в глобальном контексте выполнения.

После того, как функции вызваны и выполнены, движок сохраняет их в контексте выполнения соответственно.

Стек выполнения, также известный как Стек вызовов, представляет собой стек со структурой LIFO - Last in, First Out, которая используется для хранения всего контекста выполнения, созданного во время выполнения кода.

Только functions () хранятся в контексте выполнения, а остальные - в глобальном контексте выполнения. Поскольку JavaScript интерпретирует язык, он

Мы знаем, когда вызывается функция (), имеющая переменные, и получает контекст выполнения, и переменные будут сохранены в том же контексте выполнения, что и у функции (). Для лучшего понимания возьмем 3 функции, например FunA (), FunB () и FunC (). FunB () вызывается в FunA (), а FunC () вызывается в FunB, а затем вызывается FunA (), как показано ниже.

Теперь глобальный контекст выполнения будет создан как анонимный. Когда вызывается FunA (), он сохраняется в стеке вызовов. Поскольку FunB () и FunC вложены, они также выполняются и хранятся в структуре LIFO.