Спросят с вероятностью 7%
IIFE (Immediately Invoked Function Expression) — это функция, которая определяется и вызывается немедленно после ее создания. IIFE полезны по нескольким причинам:
Основные преимущества
1️⃣Изоляция кода:
Создают новую область видимости, что помогает избежать загрязнения глобального пространства имен. Это особенно полезно при работе с переменными, которые могут конфликтовать с другими частями кода.
2️⃣Создание приватных переменных:
Переменные, объявленные внутри IIFE, не доступны снаружи, что делает их приватными. Это помогает защитить данные и функции от нежелательного доступа или модификации.
3️⃣Предотвращение конфликтов переменных:
Поскольку IIFE создают собственную область видимости, переменные внутри них не конфликтуют с переменными в других частях программы.
4️⃣Инициализация кода:
IIFE часто используются для выполнения однократной инициализации, которая должна произойти сразу после загрузки кода.
Синтаксис IIFE
Может быть объявлена с помощью двух основных синтаксисов:
1️⃣Анонимная функция
(function() {
console.log('This is an IIFE');
})();2️⃣Функция с именем
(function namedIIFE() {
console.log('This is a named IIFE');
})();Примеры
1️⃣Изоляция переменных
var i = 10;
(function() {
var i = 20;
console.log(i); // 20
})();
console.log(i); // 10
В этом примере переменная
i внутри IIFE не конфликтует с переменной i в глобальной области видимости.2️⃣Создание приватных переменных
var counter = (function() {
var count = 0;
return {
increment: function() {
count++;
return count;
},
reset: function() {
count = 0;
}
};
})();
console.log(counter.increment()); // 1
console.log(counter.increment()); // 2
counter.reset();
console.log(counter.increment()); // 1Здесь переменная
count является приватной и доступна только через методы increment и reset.3️⃣Инициализация кода
(function() {
console.log('IIFE for initialization');
// Initialization code here
})();IIFE нужны для создания новой области видимости, изоляции кода, создания приватных переменных и предотвращения конфликтов переменных. Они выполняются сразу после объявления и часто используются для инициализации кода.
🔥 ТОП ВОПРОСОВ С СОБЕСОВ
🔒 База собесов | 🔒 База тестовых