Parenteser i IIFE i JavaScript

Vanligtvis, när en funktion anropas på plats, används istället för plus parenteser, eftersom detta sätt att formatera anses vara mer uppenbart:

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

Oftast placeras funktionsanropets parenteser utanför, så här:

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

Avgör, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

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

Avgör, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

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

Avgör, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

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

Avgör, utan att köra koden, vad som kommer att skrivas ut i konsolen:

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

console.log(result());