Parentesi tonde nelle IIFE in JavaScript

Di solito, quando si richiama una funzione immediatamente, al posto del segno più si usano le parentesi tonde, poiché questo modo di formattazione è considerato più ovvio:

javascript(function() {
  console.log('!');
}());

Molto spesso le parentesi tonde per richiamare la funzione si mettono all'esterno, in questo modo:

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

Determinate, senza eseguire il codice, cosa verrà stampato in console:

javascriptlet result = (function() {
  return '!';
}());

console.log(result);
Задание 2

Determinate, senza eseguire il codice, cosa verrà stampato in console:

javascriptlet result = (function() {
  return '!';
})();

console.log(result);
Задание 3

Determinate, senza eseguire il codice, cosa verrà stampato in console:

javascriptlet result = (function() {
  return '!';
});

console.log(result);
Задание 4

Determinate, senza eseguire il codice, cosa verrà stampato in console:

javascriptlet result = (function() {
  return '!';
});

console.log(result());