(function() { // 즉시 실행 함수
    let a = 1;
    let b = 2;
    let c = a + b;
    console.log(c);
})();

let a = 2; // 즉시 실행 함수의 변수 a와 충돌이 발생하지 않음
console에서 출력된 모습 함수를 호출하지 않아도 함수가 직접 호출되어 console에서 출력됩니다.
함수명();
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