JavaScript 执行环境

JavaScript 执行环境

每个执行环境都关联一个变量对象,环境中定义的所有变量和函数都保存在这个对象中

  1. 定义了变量或函数有权访问的其它数据
  2. 在web浏览器中,全局执行函数被认为是window对象
    • 全局执行环境(最外围的执行环境)直到应用程序退出才会销毁(关闭网页)
  3. 每个函数都有自己的执行环境

    执行流进入一个函数时,函数的环境会被推入环境栈中
    函数执行之后,栈将其环境推出,把控制前交回之前的执行环境

作用域链

作用:保证对执行环境有权访问的所有变量和函数 的有序访问

  1. 作用域的前端始终是当前执行代码所在环境的变量对象
  2. 全局执行环境的变量对象始终都是作用域链中的最后一个对象

JavaScript 执行环境
标识符解析是沿着作用域链一级一级地搜索标识符的过程

延长作用域链(在作用域前端临时增加一个变量对象,代码执行后移除)

  • try-catch 语句的 catch块

    • 创建一个新的变量对象,包含的是被抛出的错误对象的声明
  • with语句

    • 将指定对象添加到作用域链中
      with(location){
        //变量对象包含了location的所有属性和方法
        console.log(href)
       }
      

更多内容尽在我的博客 持续更新更多内容