Вот как определяется IIFE:
(function () {
console.log("IIFE!");
})();
Сама функция заключена в круглые скобки, что позволяет ей создавать экземпляр функции. Отсутствие этих скобок привело бы к ошибке, потому что у данной функции нет имени (однако это можно обойти, назначив функцию переменной, где выходные данные могут быть возвращены переменной).
Оператор (); выполняет неназванную функцию — это должно быть сделано сразу после ее объявления.