Immediately Invoked Function Expression (IIFE)

Pranav Bakare - Sep 1 - - Dev Community

An Immediately Invoked Function Expression (IIFE) is a JavaScript function that runs as soon as it is defined. It is commonly used to avoid polluting the global scope or to create a private scope for variables.

Here’s a simple example of an IIFE:

(function() {
    var message = "Hello from IIFE!";
    console.log(message);
})();
Enter fullscreen mode Exit fullscreen mode

Explanation:

  • The function is wrapped in parentheses: (function() { ... }). This makes the JavaScript engine treat it as an expression.
  • Immediately after the closing parenthesis of the function, another set of parentheses () is added to invoke the function immediately.
  • The function runs right after it is defined, logging "Hello from IIFE!" to the console.

Output:

Hello from IIFE!
Enter fullscreen mode Exit fullscreen mode

Usage:

IIFEs are useful when you want to create a new scope, especially to protect variables from being accessed or modified outside of the function:


(function() {
    var counter = 0;  
// This counter is private and can't be accessed from outside

    function increment() {
        counter++;
        console.log(counter);
    }

    increment(); // Logs: 1
    increment(); // Logs: 2
})();

console.log(typeof counter); 
// Logs: "undefined", because `counter` is not accessible here.

Enter fullscreen mode Exit fullscreen mode

This ensures that variables like counter remain private and are not accidentally modified or accessed from other parts of the code.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .