IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:Execution Context

共 3 篇相关文章

IT 累计浏览 4,342

了解JavaScript的执行上下文

这篇讲的是JavaScript里一个常被提及却少有人深究的概念——执行上下文。文章从代码运行时的三种执行环境(全局、函数、eval)入手,指出执行上下文本质上就是当前代码的“作用域环境”。 作者没有停留在定义上,而是用图示清晰地展示了执行栈如何管理这些上下文:浏览器作为单线程,会将全局上下文作为初始栈帧,每次调用函数就压入一个新的栈帧,函数执行完毕再弹出。这个机制解释了代码的执行顺序和异步事件排队的原理。 文章的核心价值在于深入执行上下文内部,剖析了它被创建时的两个阶段。尤其在“创建阶段”,解释器会预先扫描并初始化变量对象(AO/VO),将函数声明完整提升,而将变量声明初始化为 undefined。这就从根源上解释了“变量提升”和“函数声明可提前使用”这些常见现象的背后机制,而不仅仅是告诉读者一个规则。

IT 累计浏览 18,292

深入理解Javascript之执行上下文(Execution Context)

这篇讲的是JavaScript中最核心但常被忽略的概念——执行上下文。作者从代码的运行环境切入,清晰地将执行上下文划分为全局、函数和Eval三种类型,并指出它是理解变量提升、作用域等行为的钥匙。 文章用一个函数调用图,生动展示了多个执行上下文是如何像栈一样被管理的:单线程的JavaScript引擎在执行代码时,每调用一个函数就会创建一个新的上下文并压栈,执行完毕后再弹出。这种“堆栈”模型解释了代码执行的严格顺序。 更深入地,作者剖析了执行上下文创建时的两个关键阶段。在真正的代码执行前,引擎会先进入“建立阶段”,完成变量与函数的声明、作用域链的构建以及this值的确定。这正解释了为什么函数内的变量可以在声明前被访问(值为undefined),而函数却可以立即调用。 通过对堆栈机制和建立阶段的拆解,文章把抽象的引擎内部行为变得可视化,帮助开发者从根本上理解代码的运行逻辑。

IT 累计浏览 2,632

正确理解javascript的this关键字

这篇讲的是JavaScript开发中一个既基础又常被混淆的知识点——this关键字。作者从this与执行上下文的内在联系出发,直接点明许多前端工程师至今对它的行为仍感模棱两可。 文章通过一系列具体代码示例,剖析了this在不同调用场景下的指向差异。比如,在全局函数调用中this默认绑定到全局对象,在对象方法中它指向调用该方法的对象,而在嵌套函数或事件回调里,this的值可能意外变化。作者对比了这些常见场景,强调理解函数执行上下文是把握this指向的核心。 通过这种结合实践的讲解,文章不仅厘清了关键差异,还帮助读者在类似全局绑定、显式绑定等不同环境中做出正确选择。对于想要避免this相关陷阱、写出更健壮JavaScript代码的开发者来说,这是一次清晰的实战梳理。