深入理解JavaScript执行栈
文章图片
一.什么是执行栈?
在JavaScript当中函数一旦过多,就有多个函数执行上下文,每次调用函数创建一个新的执行上下文,那如何管理创建的那么多执行上下文呢? 【JavaScript|深入理解JavaScript执行栈】JavaScript 引擎创建了执行上下文栈来管理执行上下文。可以把执行上下文栈认为是一个存储函数调用的栈结构,遵循先进后出的原则。
执行栈: call stack 一种结构,放的是函数的执行环境,每一次函数执行之前,他的所有内容全部会放到执行栈中,函数调用之前,会创建执行环境,放到执行栈当中,函数调用完成,销毁执行环境。
文章图片
如上图所述:在执行栈中必须遵守先进后出,后进先出,自上而下的顺序。
- JavaScript 执行在单线程上,所有的代码都是排队执行。
- 一开始浏览器执行全局的代码时,首先创建全局的执行上下文,压入执行栈的顶部。
- 每当进入一个函数的执行就会创建函数的执行上下文,并且把它压入执行栈的顶部。当前函数执行完成后,当前函数的执行上下文出栈,并等待垃圾回收。
- 浏览器的 JS 执行引擎总是访问栈顶的执行上下文。
推荐阅读
- 微软|9个值得推荐的 VUE3 UI 框架
- JavaScript|JavaScript知识——DOM增删改、操作内联样式
- 原型链
- vue-评分-前后台|Vue中事件总线EventBus的应用(三)定义全局事件——实例之main.js-创建事件总线、$emit-发布事件、$on-订阅事件、$off-去除事件
- 精选毕业设计完整源码+论文|asp毕业设计——基于C#+asp.net+cs的CS应用程序平台多语种技术设计与实现(毕业论文+程序源码)——平台多语种技术
- c++|C++(从零开始,万字模拟实现string(超详细))
- js 比较两个数组,并进行替换掉
- 新程序员|justjavac(从辍学到成为Deno核心代码贡献者,我的十年编程生涯)
- JavaScript|【JavaScript】DOM (四) 轮播图超详细讲解