Execution Context in JavaScript

Javascript 10 min min read Updated: Mar 09, 2026 Advanced
Execution Context in JavaScript
Advanced Topic 1 of 15

Execution context is one of the most fundamental concepts that explain how JavaScript code runs internally. Every time JavaScript executes a script or function, it creates a special environment called an execution context. This environment manages variables, functions, and the value of the this keyword during program execution.

Understanding execution context is essential for learning advanced JavaScript topics such as hoisting, closures, and the call stack. It helps developers understand how JavaScript manages memory and executes code step by step.

Components of Execution Context

Each execution context in JavaScript consists of three main components:

  • Variable Environment
  • Lexical Environment
  • this Binding

Variable Environment

The variable environment stores variables and function declarations created during execution. It keeps track of variables declared with var and function definitions.

Lexical Environment

The lexical environment contains variables and references from the surrounding code structure. It helps JavaScript resolve variable scope when nested functions are used.

this Binding

The execution context also determines the value of the this keyword. Depending on how a function is called, the value of this may refer to the global object, an object instance, or be undefined in strict mode.

Execution Context Lifecycle

Each execution context goes through two important phases:

  • Creation Phase
  • Execution Phase

Creation Phase

During the creation phase, JavaScript scans the code and allocates memory for variables and functions. Function declarations are stored completely in memory, while variables declared with var are initialized with the value undefined.

Execution Phase

In the execution phase, JavaScript runs the code line by line and assigns actual values to variables.

Example of Execution Context

javascript let x = 10; function display(){ let y = 20; console.log(x + y); } display();
Output

30

When this code runs, JavaScript first creates the global execution context. When the display() function is called, a new execution context is created for that function.

Call Stack and Execution Context

JavaScript manages execution contexts using a structure called the call stack. The call stack keeps track of which function is currently running.

  • The global execution context is created first
  • Each function call adds a new execution context to the stack
  • When a function finishes execution, its context is removed from the stack
javascript function first(){ console.log("First function"); second(); } function second(){ console.log("Second function"); } first();
Output

First function

Second function

Why Execution Context is Important

Execution context explains how JavaScript manages memory, variable scope, and function execution. It is the foundation of many advanced JavaScript concepts including closures, hoisting, asynchronous programming, and the event loop.

A strong understanding of execution context helps developers write better JavaScript code and debug complex programs more easily.

Conclusion

Execution context is the internal mechanism that JavaScript uses to run code. It controls how variables are stored, how functions are executed, and how the call stack manages program flow.

Mastering execution context helps developers understand the inner workings of JavaScript and prepares them for more advanced topics such as hoisting, closures, and asynchronous programming.

Get Newsletter

Subscibe to our newsletter and we will notify you about the newest updates on Edugators