JS//JS运行机制(异步 单线程)

JS——异步 单线程

在这里插入图片描述
在这里插入图片描述

JS——JS运行机制(异步 单线程)

1 知识点

1.1 如何理解 JS 的单线程

同一时间只能做一件事

1.2 什么是任务队列(event queue)

JS有任务优先级。同步任务>异步任务

1.3 什么是异步(同步)

同步:发送一个请求,等待返回,然后再发送下一个请求
异步:发送一个请求,不等待返回,随时可以再发送下一个请求

1.4 什么是事件循环(event loop)

同步任务放入运行栈中,异步任务则不放入,过了设定的时间放入异步任务队列中,
同步任务执行完,异步任务队列中的任务放入运行栈中,运行栈运行完空了又去异步任务队列监听是否有任务,
有就再执行,如此循环,就是事件循环(Event Loop)

1.5 理解哪些语句会放入异步任务队列 or 什么时候执行异步任务 or 前端使用异步的场景

所有的“等待的情况”都需要异步
①定时任务:setTimeout、setInterval
②网络请求:ajax请求、动态img加载
③事件绑定(addEventListener)
④ ES6 中的 Promise

1.6 5)理解语句放入异步队列的时机

过了设定的时间

2 问答

*同步和异步的区别是什么?分别举一个同步和异步的例子
*一个关于 setTimeout 的笔试题
*前端使用异步的场景有哪些(同知识点1.5)
*异步实现的原理,js 与内核 之间的交互

2.1 同步和异步的区别是什么?分别举一个同步和异步的例子

①同步会阻塞代码执行,而异步不会;
②alert是同步,setTimeout是异步

2.2 一个关于 setTimeout 的笔试题(异步和单线程的关系)

因为JS单线程的特点,异步可以解决阻塞的问题

2.3 前端使用异步的场景有哪些

(同知识点1.5)

2.4 异步实现的原理,js 与内核 之间的交互

(异步的原理——回答js运行机制【单线程、任务队列、事件循环、异步任务队列的语句】)

js 是单线程,同一时间只能做一件事。针对这种特性,异步可以解决阻塞的问题。
任务队列中,同步事件的优先级高于异步事件。
同步任务放入运行栈中,异步任务则不放入,过了设定的时间放入异步任务队列中,
同步任务执行完,异步任务队列中的任务放入运行栈中,运行栈运行完空了又去异步任务队列监听是否有任务,
有就再执行,如此循环,就是事件循环(Event Loop)。
【其实就说一下,因为js单线程的特性,事件循环过程中异步事件会在同步事件后执行】

猜你喜欢

转载自blog.csdn.net/weixin_37877794/article/details/114198890