Creating Phase
Variable hoisting inside Declarative Record

Creating of Function Object
Next we have function greet which is handled by the Object Record inside Global Environment Record. Functions are initialized during the creation phase. So a new function object is created for greet.
- Environment: It points to the environment record in which it was declared. In this case it is Global Environment Record.
- Call Method: It is a method that gets called whenever we invoke the function.
Execution Phase
First the Global Execution Context is added to the call stack and executed. Now the let and const variables get initialized and gets their assigned value stored inside the memory. And the greet function is already initialized so we move on to the line where we invoke the greet function.Function Creation Phase
Here the call method in the function object is called which creates a new Function Execution Context.

Function Execution Phase
