(function() {  // 即時実行関数
    let a = 1;
    let b = 2;
    let c = a + b;
    console.log(c);
})();

let a = 2;  // 即時実行関数内の変数aと衝突しません
コンソールに出力された様子 関数を呼び出さなくても、関数が直接実行されてコンソールに出力されます。
関数名();
function fn() { /* code */ }
function fn() { /* code */ }(); // Uncaught SyntaxError: Unexpected token ')'
(function fn() { /* code */ }());
(function fn() {
    /* code */ 
}());

(function fn() {
    /* code */ 
})();
!function fn() {
    /* code */ 
}();

+function fn() {
    /* code */ 
}();

-function fn() {
    /* code */ 
}();
(function () {
    /* code */ 
}());
const fn = (function() {
    console.log("一度だけ実行されます。");
}());

// 出力: "一度だけ実行されます。"

fn(); // Uncaught TypeError: fn is not a function
(function(initialValue) {
    let count = initialValue;
    console.log(count);
}(10));

// 出力: 10
const sum = (function(x, y) {
    return x + y;
}(5, 7));

console.log(sum); // 出力: 12