Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

执行上下文栈是什么【热度: 632】 #445

Open
yanlele opened this issue Jun 12, 2023 · 0 comments
Open

执行上下文栈是什么【热度: 632】 #445

yanlele opened this issue Jun 12, 2023 · 0 comments
Labels
JavaScript JavaScript 语法部分 网易 公司标签
Milestone

Comments

@yanlele
Copy link
Member

yanlele commented Jun 12, 2023

关键词:执行上下文栈

在JavaScript中,执行上下文栈(Execution Context Stack)是用于跟踪和管理函数执行的机制。每当JavaScript代码执行到一个函数时,就会创建一个执行上下文(Execution Context)并被推入执行上下文栈的顶部。当函数执行完毕后,执行上下文将从栈中弹出,控制权将返回给调用该函数的上下文。

执行上下文栈遵循"先进后出"(Last-In-First-Out)的原则。也就是说,最后一个推入栈的执行上下文会被最先弹出。

每个执行上下文都包含了以下三个重要的组成部分:

  1. 变量对象(Variable Object):变量对象存储了函数的形参、函数声明、变量声明和作用域链等信息。

  2. 作用域链(Scope Chain):作用域链是一个由当前执行上下文的变量对象和所有父级执行上下文的变量对象组成的链表结构。它用于变量查找的过程。

  3. this 值:this 值指定了当前执行上下文中的 this 关键字的指向。

通过执行上下文栈,JavaScript引擎能够追踪到代码的执行位置,并根据当前执行上下文的环境来解析变量和执行函数。这种栈结构的管理方式使得JavaScript能够实现函数的嵌套调用和正确的变量作用域处理。

@yanlele yanlele added JavaScript JavaScript 语法部分 网易 公司标签 labels Jun 12, 2023
@yanlele yanlele added this to the milestone Jun 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
JavaScript JavaScript 语法部分 网易 公司标签
Projects
None yet
Development

No branches or pull requests

1 participant