JS预编译

2021-08-16 15:28:48 浏览数 (1)

js预编译

  1. 创建AO对象
  2. 找函数形参和变量声明,值给undefined
  3. 实参形参统一
  4. 在函数体里面找函数声明,值赋予函数体
代码语言:javascript复制
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);
代码语言:javascript复制
第一步:AO{ }
第二步:
AO{
a : undefined,
b : undefined
}
第三步:
AO{
a : 1,
b : undefined
}
第四步:
AO{
a : function a() {},
b : undefined,
d : function d() {}
}

0 人点赞