// 第1种
(function fn(i) {
    console.log(i) // 22
})(22);


// 第2种
(function () { // open IIFE 
    // inside IIFE 
}()); // close IIFE


// 第3种
!function () { // open IIFE 
    // inside IIFE 
}(); // close IIFE


// 第4种
void function () { // open IIFE 
    // inside IIFE 
}(); // close IIFE


// 扩展:定时器函数
for (var i = 0; i < 3; i++) {
    setTimeout(function (i) {
        console.log(i)
    }(i), 0)
}


function fn(i) {
    console.log(i) // 22
}(55);

fn(22)