Кръгли скоби в 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());