JS 变量作用域链 变量的类型及访问优先顺序

1.定义
变量在当前环境now、内部环境f1、内部深层环境f2/f3…都起作用的现象形成了一个链条,这个链条就称为变量的"作用域链"
在这里插入图片描述
2. 作用域链的作用
2.1 变量必须“先声明、后使用”
函数可以“先使用、后声明”,原因是函数有“预加载”过程
在这里插入图片描述
2.2 内部环境可以访问外部环境的变量,反之不然
环境:每个函数内部都是一个环境,最外边是全局环境。
两种类型:函数环境、全局环境
在这里插入图片描述
2.3 变量的作用域是声明时决定的,而不是运行时
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3. AO活动对象
AO: Active Object 活动对象(抽象的)
执行环境:
js代码执行是有环境的(全局环境、函数内部环境)
环境定义了其有权访问的其他数据
环境有一个与之关联的“活动对象AO”
环境中所有的变量和函数都是活动对象AO的成员
全局环境是最外围的执行环境,活动对象是window对象
执行环境中的代码执行完毕后就被销毁
在这里插入图片描述
每个环境都通过AO定义了其权访问的一些数据。
在这里插入图片描述
在这里插入图片描述
4.变量的类型及访问优先顺序
四种类型:内部变量>>>内部函数>>>形参>>>外部变量(变量/函数/形参)

4种类型变量及访问优先级:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_37171379/article/details/88885123