Uma expressão de função invocada imediatamente (IIFE) é uma função anônima executada imediatamente quando é definida.
O formato para tais funções é
(function() {
// More code here...
}());
Nota: O objetivo dos parênteses externos é fazer com que o analisador JavaScript trate isso como uma expressão em vez de uma declaração. Existem várias outras alternativas, mas esta é a mais comum.
Como você pode ver, a função será chamada imediatamente, já que adicionamos () ao final de sua desaceleração.
A principal vantagem do IIFE é o escopo.
Em JavaScript, apenas funções têm escopos, portanto, um IIFE tem seu próprio escopo e as declarações dentro dele não afetarão o escopo global.
Por esse motivo, é muito comum agrupar bibliotecas e módulos com IIFE.