继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【九月打卡】第五天 队列

阿拉斌
关注TA
已关注
手记 28
粉丝 4
获赞 2

第一模块:课程介绍

课程名称:JavaScript版数据结构与算法 轻松解决前端算法面试
课程章节:4-1 队列简介
主讲老师:lewis

第二模块:课程内容

知道什么是队列,学会队列的使用

第三模块:课程收获

1。队列是什么?

  • 一个先进先出的数据结构

  • JavaScript中没有队列,但可以使用Array来实现队列的所有功能

代码示例

// 声明队列数组
const queue = [];
// 入队
queue.push(1);
queue.push(2);
// 先进先出,使用shift方法来实现
const item1 = queue.shift();
const item2 = queue.shift();

2。队列的作用

  • 所有需要先进先出的场景
    比如说:食堂排队打饭,js中的异步任务

也就是说,面对这种无法同时处理多个任务的场景,就可以使用队列来进行,先进先出,保证有序,如果说,打饭的时候,我们不排队,那么就会变得很混乱。

  • JS异步中的任务队列

先看个任务队列的图

图片描述

在这个图里面,Callback就是任务队列。为什么使用任务队列来处理呢。

因为在js里面,它是的个单线程的,无法同时处理异步中的并发任务,必须要使用任务队列先进先出的处理原则来保证任务的正常运行。

在上图中,有三部分

callback:任务队列
WbApis:执行异步任务的
JS:js引擎,用来执行代码的

这三部分,通过箭头关联起来,形成了一个循环。

代码在执行的时候,会有一个先匿名主事件函数。然后会将代码丢到任务队列中去执行。

js会去任务队列中获取任务进行执行,如果任务的异步任务,就会把任务丢给webApis来执行,这个时候,它是不回等待任务结束的。

WebApis在执行完成后,只能吧执行后的回调函数给继续往任务队列里面去,然后再一个一个排队由js任务队列来执行

第四模块:课程记录

图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP