一、队列是什么?
一个先进先出(First In Fist Out)的数据结构,简称 FIFO 结构。队列的操作方式和堆栈类似,唯一的区别在于队列只允许新数据在后端进行添加。在 JavaScript 中没有队列,但可以用 Array 实现队列的所有功能。
二、简易示例
示例源码
const queue = [];
queue.push(1);
queue.push(2);
const a = queue.shift(); // 输出1
const b = queue.shift(); // 输出2
其中,变量 a 值为 1,b 值为 2。
三、什么场景下用队列?
需要考虑先进先出的场景都可以用队列,举例如下:
- JS 异步中的任务队列
3.1 场景一:JS 异步中的任务队列
在 JS 中,引入了 Callback Queue
来处理异步任务。这是因为 JS 是单线程,它无法同时处理异步中的并发任务,所以必须要 Callback Queue
来先后处理异步任务。