课程 279 / 365
76%
正文已完成
L279栈与队列是关键差别是取出顺序
用后进先出与先进先出理解撤销、导航、排队和任务消费。
栈与队列都保存一串待处理元素,取出顺序各不相同。栈先处理最近加入的元素,队列先处理等待最久的元素;这个顺序会直接改变用户体验和系统公平性。
能用取出顺序解释一个场景为什么更像栈或队列。
核心概念
先把关键判断说清楚
栈是后进先出
最近压入的状态最先弹出,适合撤销、函数调用和返回上一层。
队列是先进先出
先进入的任务先被处理,适合排队、消息消费和按到达顺序服务。
顺序是业务规则
选错结构不仅影响性能,还可能让旧任务长期得不到处理或让撤销恢复到错误状态。
案例拆解
撤销按钮与上传任务不能共用一种顺序
设计工具要支持撤销操作,同时后台要依次处理用户上传的文件。
- 01
每次编辑前把当前状态压入撤销栈,撤销时先弹出最近状态。
- 02
上传请求按到达时间进入处理队列,工作线程从队首取任务。
- 03
分别记录栈顶和队首,避免把“最新上传”误当成优先处理。
案例结果
撤销回到最近一步,上传则维持先来先服务,两种体验都符合预期。
提交前练习
现在轮到你
从一个真实流程中找出待处理元素,并判断下一项应该怎样取出。
内容会自动保存在当前设备
查看参考答案与评分标准
参考答案
元素是用户连续打开的页面;取出规则是返回时先回到最近页面;结构是栈,打开详情页时压栈,点击返回时弹出详情页并显示上一页。
评分标准
- 元素边界清楚
- 取出顺序有业务理由
- 示例与所选结构一致
本课收口 · 学习证据
完成,不等于随手打一个勾。
确认阅读、保存练习,再用 30 秒检查和一句话总结留下真实学习证据。
02完成本课练习0 / 3 项必填内容已填写
03通过理解检查约 30 秒
你现在更接近哪一种状态?
完成上面三项后,才能把本课记为已验证。
资料来源
继续核对与延伸阅读
本课内容最近更新于 。
- MDN Web Docs↗reference · 核对日期 2026-08-23