JavaScript 高级(3)- 执行上下文 - 学习进行中

概念

当控制器转到可执行的代码是,会进入该代码对应的执行上下文。即该代码对应的一个执行环境,叫做执行上下文。
在JavaScript中运行环境有:

  • 全局环境:js代码执行起来,首先就进去全局环境
  • 函数环境:当函数被调用执行时,会进入函数中执行
  • eval:不建议使用,原因:不易调试(在ChromeDev等环境下不能打断点),性能低(不可预测,编译的时间会很慢)

执行上下文的特点

  • 单线程(js就是单线程的)
  • 同步执行(按顺序执行,不能同时执行)
  • 全局上下文只有一个
  • 函数的执行上下文的数量没有限制
  • 每次某个函数被调用时,都会有新的执行上下文,即使是调用函数自身

执行上下文的生命周期

执行
执行结束等待被回收
创建
执行
结束

主要分为两个阶段:
创建阶段:

  • 生成变量对象
  • 建立作用域链
  • 确定this指向

执行阶段:

  • 活动对象
  • 变量赋值
  • 函数引用
  • 执行代码

变量对象和活动对象的区别在于执行周期不一样,在创建阶段叫做变量对象,在执行阶段叫做活动对象。
结束,回收。

变量对象(variable object,VO)

VO是一个与执行上下文相关的特殊对象,它存储在上下文中声明一下内容:

  • 创建arguments对象(函数的形参)
  • 检查function函数声明创建属性(函数声明,缩写为FD)
  • 检查var变量声明创建属性(变量声明,var)

内容待补充~~~

发布了16 篇原创文章 · 获赞 13 · 访问量 3459

猜你喜欢

转载自blog.csdn.net/weixin_45544358/article/details/99825638