查看“JS 执行过程:执行上下文、词法环境”的源代码
←
JS 执行过程:执行上下文、词法环境
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:JavaScript]] == 执行上下文(Execution Contexts) == <big>'''执行上下文(Execution Contexts)'''</big>:是评估和执行 JavaScript 代码的环境的抽象概念 —— JavaScript 代码都需要运行在相应的“执行上下文”中 执行上下文一共有三种类型: # <span style="color: green">'''全局执行上下文'''</span>:基础的上下文,任何不在函数内部的代码都在其中。 #: 它会执行两件事:创建一个全局的 window 对象(浏览器的情况下),并且设置 this 的值等于这个全局对象。 #* 程序首次允许时创建 —— '''一个程序中只会有一个全局执行上下文'''。 # <span style="color: green">'''函数执行上下文'''</span>:函数内部的代码所在的上下文。 #* 每次函数被调用都会创建一个新的执行上下文 —— '''同一函数的多次执行,会多个上下文''' # <span style="color: green">'''eval执行上下文'''</span>:eval() 内部的代码所在的执行上下文 #* 使用“eval方法”时创建 “执行上下文”定义了代码执行时的环境、作用域和数据流等重要属性,包括变量对象(Variable Object)、作用域链(Scope Chain)、this 指向和函数参数等信息。 每个脚本、函数的“执行”都会创建一个新的“执行上下文”; === 执行上下文栈 === <big>'''执行上下文栈(Execution context stack,ECS)'''</big>:又称“调用栈 / 执行栈”(call stack),用于管理“执行上下文” 函数的“执行过程”就是:对应的“执行上下文”(栈帧)在“调用栈”中的“'''入栈'''”(开始执行)、“'''出栈'''”(执行完毕)操作。 示例: : <syntaxhighlight lang="JavaScript" highlight=""> let a = 'Hello World!'; function first() { console.log('Inside first function'); second(); console.log('Again inside first function'); } function second() { console.log('Inside second function'); } first(); console.log('Inside Global Execution Context'); </syntaxhighlight> : === 生命周期 === == 词法环境(Lexical Environment) == == 参考 == <ref>参考: # [https://juejin.cn/post/6844903682283143181 《<nowiki>[译]</nowiki> 理解 JavaScript 中的执行上下文和执行栈》] # [https://juejin.cn/post/6945240902625394718 《你真的了解执行上下文吗?》] </ref>
返回至“
JS 执行过程:执行上下文、词法环境
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息