千家信息网

JavaScript如何调用栈

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"JavaScript如何调用栈"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1:基本
千家信息网最后更新 2026年11月01日JavaScript如何调用栈

本篇内容介绍了"JavaScript如何调用栈"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1:基本概念

栈(stack):用来保存简单的数据字段。

堆(heap):用来保存栈中简单的数据字段对指针的引用。

队列:是一种先进先出的线性数据结构。

函数的调用的进栈和出栈的顺序,遵循 先进后出 的原则。

空间分配: 堆:一般由程序员释放,如果程序员不释放就会在结束时由OS回收;

栈:一般由操作系统自动分配释放。

缓存方式: 堆:存放在二级缓存中,生命周期一般是由虚拟机的垃圾回收算法决定的;

栈:存放在一级缓存中,被调用时处于存储空间,调用完立即释放。

操作数据:堆栈(先进后出),队列(先进先出)。

调用栈是一种栈结构,它用来存储计算机程序执行时候其活跃子程序的信息。它是一种LIFO的数据结构,将记录代码运行时的执行上下文。当遇到某个函数的调用语句时,它将会记录当前的执行上下文,将函数入栈,并为其创建一个新的执行上下文。(比如什么函数正在执行,什么函数正在被这个函数调用等等信息)。

调用栈是解析器的一种机制。

javascript是一门单线程语言,主线程在同一时间只能处理一件事。那javascript是如何处理处理函数的调用关系的?

答案是——调用栈。

2:Event Loop(事件循环)

JavaScript是一个单线程,它执行的所有代码都放在下面这个Call Stack里面,当Call Stack执行完毕之后,就会再右侧的队列里面找任务,如果有微任务,就会先执行微任务,再去执行宏任务。

事件循环:就是同步任务进入主线程,异步任务加入到任务队列中。等主线程的任务执行完就去执行任务队列中的任务,这个过程会不断重复。所有同步任务都在主线程上执行,形成一个执行栈。主线程之外, 存在一个任务队列(task queue), 异步任务有了运行结果会在任务队列之中放置一个任务。执行栈中的所有同步任务执行完毕后读取任务队列(先读取微任务、宏任务)不断重复上面的第三步。

js既然是单线程那么肯定是排队执行代码,怎么去排这个队就是Event Loop,虽然js是单线程但是浏览器不是单线程。

console.log('script start');  setTimeout(function() {  console.log('timeout1'); }, 10);  new Promise(resolve => {  console.log('promise1');  resolve();  setTimeout(() => console.log('timeout2'), 10); }).then(function() {  console.log('then1') })  console.log('script end');  // * script start * promise1 * script end * then1 * timeout1 * timeout2

3:宏任务(Mask-task)

  • setTimeout

  • setInterval

  • I/O

特点:由JavaScript线程外的宿主线程执行,比如,定时器触发线程setTimeout、setInterval,异步http请求线程。JavaScript线程不空闲宏任务永远没有执行机会。

for(let i=0; i<100000000; i++) {}  setTimeout(function() {  console.log('setTimeout1'); }, 1000);  setTimeout(function() {  console.log('setTimeout2'); }, 2000);

4:微任务(Mask-task)

  • promise

特点:由JavaScript线程维护,它的执行时机是在主线程所有可执行代码执行完成后执行,浏览器渲染DOM前会全部执行。

"JavaScript如何调用栈"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

任务 线程 队列 函数 数据 代码 先进 上下 上下文 程序 结构 缓存 同步 不断 事件 信息 内容 字段 就是 数据结构 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网加科技 涨乐互联网科技 齐家互联网科技 杭州互联网科技公司 互联网科技汛 互联网科技股有哪些 浙江互联网科技研学营 银川新华互联网科技学校联系电话 畅思互联网科技 如何创新互联网科技 深圳市罗太互联网科技有限公司 互联网科技股为什么大涨 互联网科技融合创新 有人说阿里系是互联网科技企业 福建互联网展示科技馆设计 陕西九四连强互联网科技有限公司 互联网科技品牌 互联网科技创新创业项目 互联网科技创业有什么好项目 科技发展第三阶段互联网时代 江苏根荣互联网科技 云信互联网科技有限公司 关于新基建和互联网科技 互联网科技集团 广西拼得多互联网科技有限公司 剑昆互联网络科技有限公司临桂 以后互联网后是啥科技 和信科技工业互联网 速维有品互联网信息科技(苏州)有限公司 银川新华互联网科技学校联系电话
0