JavaScript 执行环境
每个执行环境都关联一个变量对象,环境中定义的所有变量和函数都保存在这个对象中
- 定义了变量或函数有权访问的其它数据
- 在web浏览器中,全局执行函数被认为是window对象
- 全局执行环境(最外围的执行环境)直到应用程序退出才会销毁(关闭网页)
- 每个函数都有自己的执行环境
当执行流进入一个函数时,函数的环境会被推入环境栈中
函数执行之后,栈将其环境推出,把控制前交回之前的执行环境
作用域链
作用:保证对执行环境有权访问的所有变量和函数 的有序访问
- 作用域的前端始终是当前执行代码所在环境的变量对象
- 全局执行环境的变量对象始终都是作用域链中的最后一个对象
标识符解析是沿着作用域链一级一级地搜索标识符的过程
延长作用域链(在作用域前端临时增加一个变量对象,代码执行后移除)
-
try-catch 语句的 catch块
- 创建一个新的变量对象,包含的是被抛出的错误对象的声明
-
with语句
- 将指定对象添加到作用域链中
with(location){ //变量对象包含了location的所有属性和方法 console.log(href) }
- 将指定对象添加到作用域链中
更多内容尽在我的博客 持续更新更多内容