预编译

 预编译发生在执行之前

1;初始化全局对象 空对象  Global Objec 

2:全局作用与下 函数声明提升。

Global Objet {

    <function> foo: undefined

 }

3:全局作用有下 变量声明提升

 Global Objet {

    <function> foo: undefined,

             a: undefined,

             b:undefined,

            c:undefined

}

4: 给提升的函数赋值 function

Global Objet {

    <function> foo: <function>,

        a: undefined,

        b:undefined,

        c:undefined

}


函数执行前准备

1:初始化Active Objec (AO) 对象

Active Object{}

2: 提升形参

Active Object{

        a: undefined,

        b:undefinec

}

3:提升函数

Active Object{

        a: undefined,

        b:undefined,

        bar:undefined  

}

4:提升变量

Active Object{

        a: undefined,

        b:undefined,

        bar:undefined,

        lt:undefined

}

5 给提升的函数赋值 <function>

Active Object{

    a: undefined,

    b:undefined,

    bar:<function>, 'undefined' --->  <function>

    lt:undefined

}

6: 形参实参相统一

Active Object{

    a: 1,    undefined--->1

    b:2,     undefined--->2

    bar:<function>, 

    lt:undefined

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.一个功能抽象为一个函数,单独提取出来,达到复用的目的。 2.递归,先执行的最后执行完。 3.定义在全局的叫全局...
    Sune小叶子阅读 647评论 0 0
  • 本人今天去面试,去了一个大厂面试,也遇到了一位30多年岁的前端大神,他面试了我一些js基础知识,什么是js预编译,...
    小李不小阅读 232评论 0 1
  • 文章目录 JavaScript运行三部曲 JavaScript预编译 01 关于预编译的一些知识点 02 预编译四...
    寒羽鹿阅读 694评论 1 0
  • JS 运行三部曲 JS 运行三部曲语法分析预编译解析执行 预编译前奏暗示全局变量 imply global全局变量...
    席坤阅读 466评论 0 0
  • JavaScript(单线行解释型语言)运行三部曲: 1语法分析 2预编译 3 解释执行 知识点:预编译 作用...
    大大大l脸阅读 361评论 1 2

友情链接更多精彩内容