Самовызывающиеся функции (IIFE - Immediately Invoked Function Expression) служат для создания независимого лексическогоScope, предотвращая "засорение" глобального Scope и избегая конфликтов имен переменных. Фигурные скобки в обычных блоках кода (вне функций) в более старых версиях JavaScript (например, до ES6 с let и const) не создавали такого независимого Scope для переменных, объявленных с var.
Основные причины использования IIFE:
Пример использования IIFE для создания приватного Scope:
javascript
Пример обычного блока с var где Scope не изолирован:
javascript
С появлением let и const в ES6 блоки кода, ограниченные фигурными скобками, начали создавать блочныеScope, что снизило необходимость использования IIFE solely для изоляции Scope в таких случаях. Однако IIFE по-прежнему полезны для создания замыканий и модульности, а также для выполнения кода сразу после объявления.
javascript