Invocação de Função Imediata em JavaScript

Agora vamos analisar uma técnica que permite invocar uma função diretamente no local de sua declaração. Essa construção é chamada de Immediately Invoked Function Expression (IIFE).

Vamos ver um exemplo. Suponha que temos a seguinte expressão funcional:

javascriptlet func = function() {
  console.log('!');
};

func(); // exibirá '!'

Agora, em vez de atribuir nossa função a uma variável, vamos invocá-la imediatamente, "no local". Para isso, colocamos parênteses após a função:

javascript+function() {
  console.log('!'); // exibirá '!'
}();

A presença do sinal de mais neste caso é uma condição obrigatória, pois sem ele a função se tornaria uma Function Declaration, e estas não podem ser invocadas no local (especialmente sem um nome). Claro, em vez do sinal de mais, pode ser qualquer coisa, - o principal é que nossa função seja uma expressão funcional.

Задание 1

Determine, sem executar o código, o que será exibido no console:

javascript!function() {
  console.log('!');
}();
Задание 2

Determine, sem executar o código, o que será exibido no console:

javascriptfunction() {
  console.log('!');
}();