Execution Contexts, Hoisting, Scopes, and Closures are fundamental concepts in JavaScript programming language.

Screenshot from https://ui.dev/ course and it were called “Tyler”
this keyword, which is always the first parameter that can be received by a function with the bind method. If it is not received, it will look for it in its parent, until it reaches the window object. If it cannot be found, it will throw an error.Closures are created when a function is defined inside another function. The inner function creates a closure with its parent function.
When a program starts, the window object is created, along with the this keyword that references the window, and the functions and variables that exist.
When a function is called, a function context is created. Instead of creating the window object, the arguments object is created. If a function or an arrow function is used, a different context is created.
Functions have a scope, and a function inside another function is a closure.
this keyword, which is the first parameter that can be received by a function. If it is not received, it will look for it in its parent, until it reaches the window object. If it cannot be found, it will throw an error.When a program is initiated, the window object is created, along with the this keyword that references the window, and the functions and variables that exist.
When a function is called, a function context is created. Instead of creating the window object, the arguments object is created. If a function or an arrow function is used, a different context is created.
Functions have a scope and a function inside another function is a closure.