How does a Javascript code work?
JavaScript is a single-threaded language, meaning only one task can be executed at a time. When the JavaScript interpreter initially executes code, a global execution context is created. A global execution context has two components and it works in two phases.
- Creation Phase/Memory Creation Phase.
- Code Execution Phase
Creation Phase/Memory Creation Phase
In this phase, memories are allocated to all the variables and functions that are used in the code. Initially 'undefined' is assigned to all the variables and in the case of a function, the whole function snippet is assigned to a variable having the same name as the function.
The memory creation phase is the base and the core idea behind the concept of hoisting in Javascript which enables us to access the variables and functions even before declaring them.
Code Execution Phase
This is the phase where the codes are executed and actual values are assigned to the variables replaced with undefined which were assigned in the previous phase of memory creation.
Global execution context is popped out from the call stack, once the execution completes.