Execution Contexts, Hoisting, Scopes, and Closures are fundamental concepts in JavaScript programming language.
- Context refers to the
this
keyword, which is always the first parameter that can be received by a function with thebind
method. If it is not received, it will look for it in its parent, until it reaches thewindow
object. If it cannot be found, it will throw an error.
- Hoisting is the process of declaring a variable before it is used in the code.
- Scope refers to the range of accessibility of a function or a variable.
Closures
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.
- Context refers to the
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 thewindow
object. If it cannot be found, it will throw an error.
- Hoisting is the process of declaring a variable before it is used.
- Scope is the range of accessibility of a function or a variable.
- Closures occur when a function is created inside another function. The inner function creates a closure with its parent function.
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.
Β