EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

JavaScript IIFE

Home » Software Development » Software Development Tutorials » JavaScript Tutorial » JavaScript IIFE

JavaScript IIFE

Introduction to JavaScript IIFE

The JavaScript Immediately Invoked Function Expression (IIFE) is a function which helps in providing a method that defines a sequence of a particular context. Once a variable is defined inside a function it is not possible to access it outside the function where it is defined. The functions which are created in JavaScript have named functions, anonymous functions and by making use of IIFE we can execute these as soon as they are mounted. This functionality makes them IIFE. Let us have a look in detail on how this function works

Syntax

Below is the syntax for JavaScript IIFE:

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

(function () {
// Function Logic Here.
})();

Explanation: The primary use of this function is that the variables should be accessible only within the scope of the defined function that is there.

The declaration should begin with the keyword function(). In the function definition, you can define any statements which are to be performed. This function should be hoisted. A hoisted function is always placed at the start of the program or functional scope when the JavaScript code is being executed. You can also use the below syntax:

(() => { // Code that runs in your function })()

The parentheses let JavaScript know that there is a function expression and the last pair of parentheses will invoke the function.

How does IIFE work in JavaScript?

Let us see how does it work:

Code: 

(function () {
var userName = "Snehal";
function display(name)
{
alert("MyCode2.js: " + name);
}
display(userName);
})();

Popular Course in this category
JavaScript Training Program (39 Courses, 23 Projects, 4 Quizzes)39 Online Courses | 23 Hands-on Projects | 225+ Hours | Verifiable Certificate of Completion | Lifetime Access | 4 Quizzes with Solutions
4.5 (5,750 ratings)
Course Price

View Course

Related Courses
Angular JS Training Program (9 Courses, 7 Projects)Vue JS Training (1 Courses, 3 Project)

The above code is an example of IIFE. The IIFE helps in including all functions and variables with the same name and they can be accessed globally. Here we define a function and in its definition,  we are creating a variable username. We immediately write another function that will display this username. This is the display function where we are sending the username as a parameter. We have created an alert for the same where we display the code script name and then by making use of IIFE we have simply called the function at the end. In this way we have called two functions one after the other. We have rather immediately invoked. Let us check a few examples to understand better.

Examples to Implement JavaScript IIFE

Below are the examples mentioned:

Example #1

Code:

<!DOCTYPE html>
<html>
<body>
<p>JavaScript to check the working of Immediate Invoking Function Expression. </p>
<p id="demo"></p>
<script>
// anonymous function #1
var isLucky = function() {
var iife = Math.round(Math.random() * 100);
if (iife > 50) {
return "You are checking Immediate Invoking Function Expression!";
} else {
return "We are not in IIFE, better luck next time!";
}
};
var me = isLucky();
alert(me);
// anonymous function #2
window.setTimeout(function() {
alert("JavaScript and EduCBA is awesome!!!");
}, 2000);
</script>
</body>
</html>

Output:

Expression

JavaScript IIFE2

At first, the result is displayed as per the condition. When we again run the program the result is the else part. Once the time outspan is over then the output of the above program will be as below:

JavaScript IIFE3

Explanation: The above script helps us understand the IIFE in Javascript better. Here we have created a function isLucky where we are rounding off a random number and then multiplying it by 100. The random number is being generated by the Math.random() function. After this number is generated then we check if the number is less or greater than 50. If the number is greater than 50 then the message will be displayed as: “You are checking Immediate Invoking Function Expression!”. Else the corresponding message for it will be displayed. Once this function is done we are calling it and storing it in a variable called me. Whatever message is returned it will be displayed in the form is an alert window in the browser. Just after this, another function is invoked. This function will time out and display another alert will be displayed. Below will be the output when we run for the first time.

Example #2

Let us take another example of IIFE. We can use this function without if else block as well.

Code:

<!DOCTYPE html>
<html>
<body>
<p>JavaScript to check the working of Immediate Invoking Function Expression. </p>
<p id="demo"></p>
<script>
(function() {
var create = "I have learnt what is Immediate Invoking Function Expression from EduCBA successfully !!!";
alert(create);
})();
// anonymous function #2
window.setTimeout(function() {
alert("JavaScript and Edu is awesome!!!");
}, 2000);
</script>
</body>
</html>

Output:

without if else block

The message is displayed as soon as the above code is run. Once the timeout happens below alert window turns up automatically.

JavaScript IIFE5

Explanation: The above code is an example of a classic and simple IIFE. We create a function and immediately call it. We have not named this function with any name. We have just created a variable create. This function then uses this to display this message as the sun as the function is invoked. As per the syntax, we are bound to use the parenthesis correctly. If there are any misses in the parenthesis then the code will not give the desired result. We can easily invoke the function as soon as the function is declared and defined. We will just pass empty parentheses in order to invoke the function that we have created. We send the variable to create as a parameter to an alert. When the program is run the alert will be called and whatever is present in the created variable will be displayed in the alert window. We also created a similar function as in Example 1. This will work in a similar way. It will wait for timeout and will again display an alert window with the specified message. The timeout time we have mentioned here is 2 milliseconds. Once this is over the message will be displayed automatically. Let us see the output of the above code.

Conclusion

The Immediate Invoking Function Expression is an easy way of calling a function just after it is created. It helps in keeping the local variables local or global variables as global whenever required. It is fast and hence very efficient to use. It fulfills the programmer’s purpose of keeping the variables intact. IIFE can be used with a name or without any name. They can also be used with unary operators when needed.

Recommended Articles

This is a guide to JavaScript IIFE. Here we discuss an introduction to JavaScript IIFE, syntax, how does it work and programming examples. You can also go through our other related articles to learn more –

  1. Object in JavaScript
  2. JavaScript getElementById()
  3. Timer in JavaScript
  4. JavaScript Keyboard Events

JavaScript Training Program (39 Courses, 23 Projects, 4 Quizzes)

39 Online Courses

23 Hands-on Projects

225+ Hours

Verifiable Certificate of Completion

Lifetime Access

4 Quizzes with Solutions

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
JavaScript Tutorial
  • Advanced
    • Constructor in JavaScript
    • Inheritance in JavaScript
    • Polymorphism in JavaScript
    • JavaScript Static Method
    • Navigator in JavaScript
    • Abstract Classes in JavaScript
    • keyword in JavaScript
    • Overriding in JavaScript
    • JavaScript Grid
    • JavaScript innerText
    • Cookies in JavaScript
    • Delete Cookie in JS
    • Encapsulation in JavaScript
    • JavaScript Parent Node
    • Javascript Remove Element
    • Errors in JavaScript
    • Forms in JavaScript
    • JavaScript Validator
    • JavaScript Form Validation
    • Email Validation in JavaScript
    • Hamburger Menu JavaScript
    • JavaScript Date Formats
    • JavaScript Number Format
    • JavaScript Debugger
    • JavaScript Stack
    • Queue in JavaScript
    • parseFloat in JavaScript
    • Javascript innerHTML
    • JavaScript setInterval
    • JavaScript Popup Box
    • JavaScript Message Box
    • Lightbox in JavaScript
    • Javascript Design Patterns
    • addEventListener JavaScript
    • Timer in JavaScript
    • JavaScript setTimeout
    • JavaScript clearTimeout()
    • JavaScript String Format
    • JavaScript Scroll to Top
    • JavaScript Function Declaration
    • File Handling in JavaScript
    • JavaScript parseInt
    • JavaScript prompt
    • JavaScript Set Class
    • JavaScript Try Catch
    • Javascript Throw Exception
    • Finally in JavaScript
    • JavaScript Get Element by Class
    • JavaScript Obfuscator
    • Disable JavaScript
    • SetAttribute JavaScript
    • JavaScript Cursor
    • LinkedList in JavaScript
    • JavaScript WeakMap
    • JavaScript DOM
    • JavaScript defer
    • JavaScript Promise
    • JavaScript Refresh Page
    • JSON.stringify JavaScript
    • JavaScript IIFE
  • Basic
    • Introduction To JavaScript
    • What is JavaScript
    • What Javascript Can Do
    • Uses of JavaScript
    • How JavaScript Works
    • Is Javascript Case Sensitive
    • Is Javascript Object Oriented
    • Features of JavaScript
    • Careers in JavaScript
    • How to Install JavaScript
    • Best Javascript Frameworks
    • JavaScript MVC Frameworks
    • JavaScript Tools
    • What is JSON
    • What is Redux
    • What is ES6
    • Uses of React JS
    • How Analytics.JS Works
    • JavaScript Compilers
    • Java and JavaScript
    • JavaScript Literals
    • Variables in JavaScript
    • JavaScript Global Variable
    • JavaScript Keywords
    • Arithmetic in JavaScript
    • String in JavaScript
    • Pointers in JavaScript
    • Primitive Data Types in JavaScript
    • JavaScript console log
    • Object in JavaScript
    • JavaScript Enum
    • Arithmetic in JavaScript
    • Assignment Operator in JavaScript
    • JavaScript Modules
    • Cheat Sheet JavaScript
    • NPM Alternatives
  • Objects
    • JavaScript Objects
    • JavaScript History Object
    • JavaScript Object Notation
    • JavaScript Map Object
    • JavaScript Date Object
    • JavaScript Window Object
    • JavaScript Object Constructors
    • JavaScript Clone Object
    • JavaScript Object.assign()
    • JavaScript object.is()
  • Operators
    • Arithmetic Operators in JavaScript
    • JavaScript Assignment Operators
    • Logical Operators in JavaScript
    • Comparison Operators in JavaScript
    • Bitwise Operators in JavaScript
    • Ternary Operator JavaScript
    • Boolean Operators in JavaScript
    • JavaScript Boolean()
    • Unary Operators in JavaScript
    • JavaScript Number
    • JavaScript Floating
    • JS Operator Precedence
  • Control statements
    • Control Statement in JavaScript
    • Conditional Statements in JavaScript
    • Break Statement in JavaScript
    • Continue in JavaScript
    • Switch Statement in JavaScript
    • Case Statement in JavaScript
    • JavaScript if Statement
    • Nested if in JavaScript
    • JavaScript elseIf
  • Loops
    • For Loop in JavaScript
    • While Loop in JavaScript
    • Do While Loop in JavaScript
    • Nested Loop in JavaScript
  • Array
    • Arrays in JavaScript
    • Multi-Dimensional Array in JavaScript
    • Associative Array in JavaScript
    • JavaScript Declare Array
    • Arrays Methods in JavaScript
    • JavaScript Loop Array
    • String Array in JavaScript
    • JavaScript Get Array Length
    • JavaScript Merge Arrays
    • JavaScript Array Sort
    • JavaScript Array Push
    • JavaScript Iterate Array
    • JavaScript Empty Array
    • JavaScript Array Concat
    • Dynamic Array in JavaScript
    • JavaScript subarray()
    • JavaScript Array Filter
    • JavaScript Nested Array
    • JavaScript Flatten Array
    • JavaScript Array map()
    • JavaScript Array includes()
    • JavaScript Array Contain
    • JavaScript Array Slice
    • JavaScript Copy Array
    • Javascript Sum Array
    • JavaScript reverse Array
    • JSON Parse Array
  • Sorting
    • Sorting Algorithms in JavaScript
    • Insertion Sort in JavaScript
    • Merge Sort in JavaScript
    • Quick Sort in JavaScript
    • Bubble Sort in JavaScript
    • pop() in JavaScript
    • push() in JavaScript
  • Functions
    • JavaScript String Functions
    • JavaScript String Length
    • JavaScript split String
    • JavaScript Math Functions
    • Recursive Function in JavaScript
    • Regular Expressions in JavaScript
    • JavaScript Arrow Function
    • JavaScript Date Function
    • Match Function in Javascript
    • Replace Function in JavaScript
    • JavaScript Call Function
    • JavaScript Pass By Value
    • split() Function in JavaScript
    • reduce() Function JavaScript
    • JavaScript String replace
    • JavaScript Compare Strings
    • JavaScript Sleep
    • JavaScript toLowercase()
    • JavaScript String to Float
    • JavaScript String to Number
    • JavaScript String to int
    • JavaScript Object to String
    • JavaScript Convert to JSON
    • JavaScript Append
    • Javascript Array to String
    • Javascript Nested Functions
    • Set in JavaScript
    • Vectors in JavaScript
    • Javascript Anonymous Function
    • sign() in JavaScript
    • isNaN() JavaScript
    • Slice() Method in JavaScript
    • Javascript void
    • endsWith() in JavaScript
    • trim() Function in JavaScript
    • JavaScript typeof
    • JavaScript indexOf()
    • JavaScript encodeURI()
    • JavaScript Random
    • JavaScript z-index
    • JavaScript Absolute Value
    • JavaScript Closure
    • Javascript Prototype
    • JavaScript Date parse
    • JavaScript Parse String
    • JavaScript undefined
    • JavaScript FileReader
    • JavaScript Style visibility
    • JavaScript sleep Function
    • JavaScript forEach()
    • JavaScript keys()
    • JavaScript find() 
    • JavaScript values()
    • JavaScript Counter
    • JavaScript Countdown
    • JavaScript instanceof
    • JavaScript Delay
    • JavaScript Default Value
    • JavaScript concat String
    • JavaScript Document Object Model
    • Unshift JavaScript
    • JavaScript Callback Function
    • JavaScript hasOwnProperty()
    • JavaScript UUID
    • JSON Parser
    • JSON Array of Strings
    • JavaScript JSON to string
    • JavaScript Uppercase
    • JavaScript Namespace
    • JavaScript Range
    • JavaScript JSON
    • JavaScript exec()
    • JavaScript test()
    • JavaScript Self Invoking Functions
    • JSON Stringify Pretty
    • JavaScript findIndex()
    • JavaScript entries()
    • JavaScript join()
    • JavaScript lastIndexOf()
    • JavaScript every()
    • JavaScript getElementById()
    • JavaScript getElementsByName()
    • JavaScript getElementsByTagName()
    • JavaScript getElementsByClassName()
    • JavaScript Animation
    • JavaScript Minify
  • Events
    • JavaScript Events
    • JavaScript Event Handler
    • JavaScript Keyboard Events
    • JavaScript Mouse Events
    • JavaScript mousemove
    • JavaScript mousedown
    • JavaScript onchange
    • JavaScript onmouseout
    • JavaScript Onkeydown
    • JavaScript onsubmit
    • JavaScript Form Events
    • JavaScript Window Events
    • JavaScript Custom Events
    • JavaScript Alert
    • JavaScript Confirm
    • JavaScript onclick Alert
    • JavaScript Apply
    • JavaScript onblur
    • JavaScript onkeyup
    • JavaScript onfocus
  • Programs
    • Patterns in JavaScript
    • Reverse in JavaScript
    • Palindrome in JavaScript
    • Factorial Program in JavaScript
    • Fibonacci Series In JavaScript
    • Square Root in JavaScript
    • Prime Number in JavaScript
    • Armstrong Number in JavaScript
    • Random Number Generator in JavaScript
    • Reverse String in JavaScript
    • JavaScript Random String
    • Functional Programming in JavaScript
  • Interview Questions
    • Javascript Interview Questions
    • JSON Interview Questions
    • JS Interview Questions

Related Courses

JavaScript Certification Training

Angular JS Certification Training

Vue JS Training

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - JavaScript Training Program (39 Courses, 23 Projects, 4 Quizzes) Learn More