πŸ” What is Closure in JavaScript? ? Explained with Simple Examples

Image
In JavaScript, a closure is created when a function "remembers" the variables from its outer scope even after the outer function has finished executing . This concept allows functions to access variables from an enclosing scope or function — even after that outer function has returned. Closures are a powerful feature in JavaScript that enable data encapsulation, callback handling, and the creation of private variables. πŸ’‘ Let's Understand with an Example function outerFunction() { let outerVariable = "I am from outer scope!"; function innerFunction() { console.log(outerVariable); // Accessing variable from outer scope } return innerFunction; } const closureFunc = outerFunction(); closureFunc(); // Output: I am from outer scope! πŸ” Explanation: outerFunction defines a variable outerVariable . innerFunction is declared inside outerFunction and uses that variable. Even after outerFunction() has finished executing, innerFunc...

🎯 What is the Event Loop in JavaScript? A Complete Guide with Diagrams

πŸ” What is the Event Loop in JavaScript? A Complete Guide with Diagrams

Have you ever wondered how JavaScript handles asynchronous operations like setTimeout, Promises, or fetch()? The secret lies in something called the Event Loop.

In this blog post, we’ll break down:

  • ✅ What the JavaScript Event Loop is
  • ✅ How the Call Stack, Web APIs, and Queues work together
  • ✅ A visual diagram to understand the flow
  • ✅ A practical code example to clear your doubts

πŸ”„ What is the Event Loop?

JavaScript is a single-threaded language, meaning it can only do one thing at a time. But it still handles asynchronous tasks efficiently thanks to the Event Loop.

Let’s understand how it works through its key components.

πŸ“Š Components of the Event Loop

  • Call Stack: Where JavaScript tracks which function is currently running.
  • Web APIs: Browser-provided functionalities like setTimeout, DOM Events, etc.
  • Callback Queue: Holds callbacks from Web APIs waiting to be executed.
  • Microtask Queue: Contains tasks like Promise.then() callbacks and runs before Callback Queue.
  • Event Loop: Continuously checks the Call Stack and moves tasks from queues when the stack is empty.

🧩 Visual Diagram

JavaScript Event Loop Diagram

πŸ§ͺ Example Code


console.log('Start');

setTimeout(() => {
  console.log('setTimeout');
}, 0);

Promise.resolve().then(() => {
  console.log('Promise');
});

console.log('End');

πŸ”Ž Output:

Start
End
Promise
setTimeout

🧠 Why?

Because Promise callbacks go to the Microtask Queue and are processed before the Callback Queue, which is where setTimeout lands.


πŸ“Œ Conclusion

The JavaScript Event Loop is crucial for handling asynchronous behavior. Understanding it helps you write efficient code and debug complex asynchronous bugs.

Want more such guides? Follow me for tutorials on JavaScript, React, and modern web development!

πŸ”— Read more at: webcodingwithankur.blogspot.com

Comments

Popular posts from this blog

πŸš€ “JavaScript Debounce Made Simple + Live Example!”

What is Hoisting in JavaScript? πŸ”„ Explained with Example

🧩 Event Delegation in JavaScript – Write Cleaner, More Efficient Code