90-IIFE

58 阅读1分钟

IIFE

  • 概念:立即执行函数表达式,指一个函数在定义同时会立即执行,并且一旦执行完毕,该内存空间被释放掉

    //1.基本写法
    (function(){
        //要执行的代码
    })()
    //2.参数传递
    ;(function(形参1,形参2...){
        //要执行的代码
        console.log(形参)
    })(实参1,实参2....)
    //3.返回值
    let 变量名 = (function(形参1,形参2...){
        //要执行的代码
       return 要返回的数据
    })(实参1,实参2....)
    
  • 作用:隔离出单独的作用域,执行之后该空间会被立即释放

    for(var i = 0;i<5;i++){
        setTimeout(function(){
            console.log(i);//5 5 5 5 5
        },1000)
        //延时计时器为异步操作
    }
    for(let i = 0;i<5;i++){
        setTimeout(function(){
            console.log(i);//0 1 2 3 4
        },1000)
        //let 创建块级作用域,不同作用域之间不受影响
    }
    for(var i = 0;i<5;i++){
        //隔离作用域,作为单独的作用域
        (function(a){
            setTimeout(function(){
                console.log(a);//0 1 2 3 4
            },1000)
        })(i)
        //创建独立作用域,将每次的值传递进去,不受外界影响
    }