//关键词定义的方式,不能立即执行。

/*

    function fun(){
        console.log(1);
    }(); */

    //函数表达式方式,可在定义时被立即执行。
    var foo = function (){

        console.log(1);

    }();
    //函数前面加操作符,可以将函数矮化成表达式。
    + function fun(){

        console.log(2);

    }();

    - function fun(){
        console.log(3);

    }();

    //常用的iife结构
    (function ff(){
        console.log(4);
    })();

    !function kk(){

        console.log(5);
    }();


    /*无法运行
    * function ooo(){
        console.log(6);
    }();
    */


    /*
    IIFE 关住了函数的作用域,在外面是调用不了函数的。
    
    kk();



    */
    


    (function (a){
        console.log(a);

    })(9);
    /*无法调用
    console.log(a);
    
    
    /*