• JS学习笔记 之 预编译



    1. imply global 暗示全局变量:任何变量,未经声明就赋值,此变量为全局对象(window)所有
    例:
    a = 10;     -->     window.a = 10;  (不管此变量是在全局赋值的,还是局部赋值的)
     
    2. 一切声明的全局变量都是window的属性     --> window即全局的
    var b = 123;     -->     window.b = 123;
                            -->     window {
                                          b: 123     //在全局对象中新加了一个属性
                                         }
     
    预编译发生在函数执行的前一刻
                              --> 解释一句,执行一句
    函数体预编译过程:
    1. 创建AO对象(Activation Object)-->    生成执行期上下文
    2. 找形参和变量声明,将形参和变量声明作为AO对象的属性名,值为undefined
    3. 将实参和形参值统一
    4. 在函数体里找函数声明,作为GO对象的属性名,值为函数体          -->   注意:函数表达式 ≠函数声明
    全局预编译过程:
    1. 生成GO对象(Global Object)=== window
    2. 找变量声明,作为GO对象的属性名,值为undefined
    3. 找函数声明,作为GO对象的属性名,值为函数体
     
     
  • 相关阅读:
    关于oracle当中数据类型转换的问题
    CASE WHEN的两种格式
    C#设置默认打印机
    运用Merge Into实现增加或更新数据
    增加或修改的存储过程
    深拷贝与浅拷贝
    sql server两种分页方法
    获取sql执行时间
    inserted触发器,一张表插入数据时,同时向另外一张表插入数据
    List<string[]> 如何去重
  • 原文地址:https://www.cnblogs.com/seveinn/p/11801775.html
Copyright © 2020-2023  润新知