作用域:
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://img2024.cnblogs.com/blog/35695/202408/35695-20240826070647288-243310440.jpg)