递归预编译

作用域:
1.变量(变量作用域又称上下文)和函数生效(能被访问)的区域
2.全局、局部变量
3.作用域的访问顺序

递归:
1.找规律
2.找出口
递归的好处:让代码更加简洁

js运行三部曲:
语法分析:
预编译:发生在函数执行的前一刻

函数声明整体提升
变量 声明提升

1.imply global 暗示全局变量:
即任何变量,如果变量未经声明就赋值,此变量就为全局对象所有。
2.一切声明的全局变量,全是window的属性
window 就是全局的域

预编译四部曲:
1.创建AO (Activation Object)(执行上下文) (生成一个GO对象 === Global Object === window)
2.找形参和变量声明,将变量和形参名作为AO属性名,值为undefined
3.将实参值和形参统一
4.在函数体里面找函数声明,值赋予函数体

解释执行:



由里面到外边,函数里边有声明使用里面的,如果没有,则使用外边的变量声明
原文地址:https://www.cnblogs.com/xiewangfei123/p/12110968.html