js系列(更新中)-js执行上下文

本文介绍了JavaScript执行上下文的概念,包括全局代码、函数代码和Eval代码的运行环境。详细阐述了执行环境的生命周期,包括创建阶段(作用域链、变量对象、this指向的确定)、执行阶段和回收阶段。此外,还解析了JavaScript执行上下文过程,通过执行栈来管理,强调了全局上下文的特殊性和单线程执行的特点。
摘要由CSDN通过智能技术生成

1、执行上下文的概念

为了表示不同的运行环境,JavaScript中有一个执行上下文(Execution context,EC)的概念。代码运行是在一定的环境之中运行的,这个运行环境我们就成为执行环境,也就是执行上下文。

 javascript运行的代码环境有三种:

                全局代码:代码默认运行的环境,最先会进入到全局环境中

                函数代码:在函数的局部环境中运行的代码

                Eval代码:在Eval()函数中运行的代码

        全局上下文是最外围的一个执行环境,web浏览器中被认为是window对象。在初始化代码时会先进入全局上下文中,每当一个函数被调用时就会为该函数创建一个执行上下文,每个函数都有自己的执行上下文。为了便于理解看下图

上图中,一共用4个执行上下文。紫色的代表全局的上下文;绿色代表person函数内的上下文;蓝色以及橙色代表person函数内的另外两个函数的上下文。

注意:不管什么情况下,只存在一个全局的上下文,该上下文能被任何其它的上下文所访问到。也就是说,我们可以在person的上下文中访问到全局上下文中的sayHello变量,当然在函数firstName或者lastName中同样可以访问到该变量。至于函数上下文的个数是没有任何限制的,每到调用执行一个函数时

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值