IIFEянемедленно явызвал Fфункции Eвыражение — это способ выполнения работают сразу же, как только они созданы. Это хороший способ защитить область действия вашей функции и переменные внутри нее.

Это шаблон проектирования, также известный как Самоисполняемая анонимная функция.

(function () {
// Write your js code here
})();

Именованный IIFE с параметрами

(function showCurrentDate(date) {
console.log('I am from IIFE', date)
})(new Date());

Почему IIFE так полезен?

IIFE — лучший способ избежать:
* Загрязнения глобальных переменных
* Перезаписи глобальной области видимости

var name = 'Pradeep';
(function () {
var name = 'chauhan';
console.log("Hello " + name);
})();
console.log("Hello " + name);
Output:
Hello Chauhan
Hello Pradeep

Другой вариант использования IIFE — его можно использовать в качестве замыкания.

const generateUniqueId = (function() {
 var counter = 0;
 return function() {
 ++counter;
 return `JSN_${counter}`;
 };
})();
console.log(generateUniqueId()); //JSON_1
console.log(generateUniqueId()); //JSON_2
console.log(generateUniqueId()); //JSON_3

Переменная счетчика недоступна извне IIFE. За исключением возвращаемой функции, никто не может прочитать или изменить переменную счетчика.

Примечание. В ES6 мы можем просто использовать фигурные скобки ({}) и использовать const или let, чтобы получить тот же эффект.

Спасибо за чтение и счастливого кодирования!