Круглые скобки в IIFE в JavaScript

Обычно при вызове функции на месте вместо плюса используются круглые скобки, так как такой способ оформления считается более очевидным:

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

Чаще всего круглые скобки вызова функции ставят снаружи, вот так:

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

Определите, не запуская код, что выведется в консоль:

let result = (function() { return '!'; }()); console.log(result);

Определите, не запуская код, что выведется в консоль:

let result = (function() { return '!'; })(); console.log(result);

Определите, не запуская код, что выведется в консоль:

let result = (function() { return '!'; }); console.log(result);

Определите, не запуская код, что выведется в консоль:

let result = (function() { return '!'; }); console.log(result());
enru