JS学习笔记 之 预编译

橙三吉。 提交于 2019-12-03 15:13:58

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对象的属性名,值为函数体

 

 
 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!