PassFront
  1. PassFront
  2. База знаний
  3. Объекты и прототипы

Что такое контекст выполнения?

Объекты и прототипы

Контекст выполнения (execution context) — это среда, в которой выполняется код: она содержит переменные, значение this и ссылку на внешнее окружение.

Что содержит

  • Variable Environment / Lexical Environment — переменные, функции, параметры.
  • this — значение контекста (this).
  • Ссылка на внешнее окружение — для поиска переменных (scope chain).

Виды контекстов

  • Глобальный — создаётся при запуске скрипта (один).
  • Функциональный — создаётся при каждом вызове функции.
  • eval — внутри eval (редко).

Стек контекстов (call stack)

При вызове функции создаётся новый контекст и кладётся в стек; по завершении — снимается:

function a() { b(); }
function b() { console.log('в b'); }
a();
// Стек: global → a → b → (b снимается) → (a снимается)

Две фазы контекста

  1. Создание — hoisting: регистрируются переменные (var→undefined, let/const→TDZ), функции, определяется this.
  2. Выполнение — код исполняется построчно.

Коротко для собеседования

Контекст выполнения — среда исполнения кода: переменные, this и ссылка на внешнее окружение. Виды: глобальный (один) и функциональный (на каждый вызов). Контексты образуют call stack. Проходит фазы создания (hoisting, this) и выполнения.

Другие вопросы раздела