I've learned three ways to write Self Invoking Functions , Immediately-Invoked Function Expression (IIFE) , and I wondered if there was any difference between them.
(function () {
console.log("Olá");
})();
(function () {
console.log("Olá");
}());
! function () {
console.log("Olá");
}();
void function () {
console.log("Olá");
}();
OBS. The question is relative to the Self Invoking Functions and not the difference for "normal" functions.