Кругли загради во IIFE во JavaScript

Обично при повикување на функција на место наместо плус се користат кругли загради, бидејќи таков начин на оформлување се смета за попознат:

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

Најчесто круглите загради за повикување на функција се ставаат однадвор, вака:

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

Определи, без да ја стартуваш кодот, што ќе се испише во конзола:

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

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

Определи, без да ја стартуваш кодот, што ќе се испише во конзола:

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

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

Определи, без да ја стартуваш кодот, што ќе се испише во конзола:

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

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

Определи, без да ја стартуваш кодот, што ќе се испише во конзола:

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

console.log(result());