Execution Contex

Definition of an Execution Context
When you run a Java Script program, it creates an execution context. Memory creation and code execution take place within the Execution Context.
Execution context is like a container with two compartments.
- Memory component
This is the place where all variables and functions stored as a
key: valuepairs. - Code component
This is the place where the code executes one line at a time.

How the Execution Context works
It works in two phases
Memory Allocation Phase

Java script will allocate memory to all variables and function.
Variables will store
undefinedas a value inside the memory space.Functions will store whole code of the function inside the memory space.
Code Execution Phase
The variable's undefined value will be replaced by the given value in the code.

When it reaches line 8, where the
fnfunction is called, a new execution context for the function is created.Then it will again go through the memory allocation phase, then code execution phase and will return the value to the variable
addValof the global execution context
After this the execution context for the function call will be deleted.
Summary
When you run JavaScript code, an Global execution context is created.
When a function is called, a local execution context is created inside the global execution context.
After completion of function execution, the local execution context will be removed.
After completion of the Java script program, the global execution context will also be removed.




