当前位置 博文首页 > 小丞同学:JS预编译

    小丞同学:JS预编译

    作者:[db:作者] 时间:2021-07-20 18:42

    js预编译

    1. 创建AO对象
    2. 找函数形参和变量声明,值给undefined
    3. 实参形参统一
    4. 在函数体里面找函数声明,值赋予函数体
    function fn(a){
       console.log(a); //在AO里找值--->输出 function a() {}
       var a = 123; //预编译将 var a,提升上去了,执行 a = 123;修改AO中a的值
       console.log(a); //输出 123
       function a() {} //预编译读过,不再读
       console.log(a); //输出 123
       var b = function() {} //函数表达式,将AO中b的值改为function () {}
       console.log(b); //输出funtion () {}
       function d() {}
    }
    fn(1);
    
    第一步:AO{ }
    第二步:
    AO{
    a : undefined,
    b : undefined
    }
    第三步:
    AO{
    a : 1,
    b : undefined
    }
    第四步:
    AO{
    a : function a() {},
    b : undefined,
    d : function d() {}
    }
    
    cs
    下一篇:没有了