当前位置: 首页 > wzjs >正文

定制企业网站建设广东省城乡建设厅网站

定制企业网站建设,广东省城乡建设厅网站,网站建设开题报告中的问题,wordpress doc目录 代码分析 代码解读 执行顺序 执行结果 结论 文件名: 在JavaScript中,理解事件循环(Event Loop)是掌握异步编程的基础。事件循环决定了代码的执行顺序,包括宏任务(Macrotasks)和微任务…

目录

 

代码分析

代码解读

执行顺序

执行结果

结论

文件名:


在JavaScript中,理解事件循环(Event Loop)是掌握异步编程的基础。事件循环决定了代码的执行顺序,包括宏任务(Macrotasks)和微任务(Microtasks)的调度。为了更好地理解事件循环,我们通过一个经典的面试题来展示JavaScript中的异步执行顺序。

代码分析

这是一个简单的HTML文件,包含了一段JavaScript代码,我们可以通过这段代码来分析JavaScript事件循环的执行顺序。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>事件循环经典_经典面试题</title>
</head><body><script>// 目标:回答代码执行顺序console.log(1)setTimeout(() => {console.log(2)const p = new Promise(resolve => resolve(3))p.then(result => console.log(result))}, 0)const p = new Promise(resolve => {setTimeout(() => {console.log(4)}, 0)resolve(5)})p.then(result => console.log(result))const p2 = new Promise(resolve => resolve(6))p2.then(result => console.log(result))console.log(7)</script></body></html>

代码解读

  1. 第一行 console.log(1):

    • 这行代码会被立即执行,输出 1
  2. 第二部分 setTimeout(() => {...}, 0):

    • setTimeout 是一个宏任务(Macrotask),它会被放入任务队列,等待所有同步代码执行完毕后执行。这里设定了0毫秒的延迟,因此它会尽快执行,但仍然会排在所有同步任务之后。
  3. 第三部分 const p = new Promise(resolve => {...}):

    • 创建了一个Promise对象,并且立即执行resolve操作,resolve(5)会将结果5传递给 then 方法。因此,它会进入微任务队列。
  4. 第四部分 const p2 = new Promise(resolve => resolve(6)):

    • 这部分是另一个Promise对象,它会在同步代码执行完毕后立即执行 then 方法,输出6。由于它是同步Promise,它会立即进入微任务队列。
  5. 第五行 console.log(7):

    • 这行代码是同步代码,会直接执行,输出 7

执行顺序

JavaScript的事件循环机制是单线程的,并且执行顺序是严格按照宏任务和微任务的优先级顺序来的。执行顺序如下:

  1. 同步任务 按顺序执行:

    • 输出 1(来自 console.log(1))。
    • 输出 7(来自 console.log(7))。
  2. 微任务 在当前同步任务执行完毕后,立即执行:

    • 输出 6(来自 p2.then(...))。
    • 输出 5(来自 p.then(...))。
  3. 宏任务 执行(微任务执行完后再执行宏任务):

    • 输出 2(来自 setTimeout 中的回调)。
    • 输出 3(来自 p.then(...) 内的 Promise 回调)。
    • 输出 4(来自另一个 setTimeout 内的回调)。

执行结果

1
7
6
5
2
3
4

结论

通过上面的代码执行顺序可以得出,JavaScript事件循环遵循如下的执行优先级:

  1. 同步任务:立即执行。
  2. 微任务:当前同步任务执行完毕后,执行所有微任务。
  3. 宏任务:所有微任务执行完毕后,再开始执行宏任务。

这个例子是一个典型的事件循环模型,展示了宏任务和微任务的执行顺序,帮助我们理解 JavaScript 中的异步执行机制。

文件名:

  • index.html

 


文章转载自:

http://zg0AzOaG.hqgkx.cn
http://XgNSy2dp.hqgkx.cn
http://HhxmxyFk.hqgkx.cn
http://HbU79pt6.hqgkx.cn
http://G7MXaIBj.hqgkx.cn
http://Ufwp0kJb.hqgkx.cn
http://nIWxy9o8.hqgkx.cn
http://QMwGuUJg.hqgkx.cn
http://oMhmmGFV.hqgkx.cn
http://ogVgL1hS.hqgkx.cn
http://5Fs8BjaJ.hqgkx.cn
http://fV4CDTQw.hqgkx.cn
http://XNJ7ERMF.hqgkx.cn
http://W9hDKX7l.hqgkx.cn
http://fei25f5N.hqgkx.cn
http://CtaHe2kA.hqgkx.cn
http://IUOHCT80.hqgkx.cn
http://vPtNN5km.hqgkx.cn
http://qetkRDBt.hqgkx.cn
http://01Wrq5ON.hqgkx.cn
http://EKo5WGAs.hqgkx.cn
http://9dhfahCv.hqgkx.cn
http://FxFxlnxu.hqgkx.cn
http://8keND8zg.hqgkx.cn
http://7SiDWzCV.hqgkx.cn
http://KjqODzGG.hqgkx.cn
http://vxsJBS5I.hqgkx.cn
http://j8opoomH.hqgkx.cn
http://RHAQoJo2.hqgkx.cn
http://F4JAT02G.hqgkx.cn
http://www.dtcms.com/wzjs/656573.html

相关文章:

  • 免费模板网站欧洲手表网站
  • 群辉做网站服务器网站建设技能考试
  • 在线设计免费logosemseo是什么意思
  • 网站怎么做全站搜索在线企业查询系统
  • 网站推广策划方案大数据vs网站开发建表怎么肩啊
  • 动易网站后台网站代码案例
  • 怎么看深圳网站页面设计丹阳火车站片区规划
  • 网站建设维护职责凡科网站制作
  • 微网站开发建设二级分销小程序
  • 英文手机商城网站建设宁波外包seo公司
  • 站长工具域名解析北京大兴黄村网站建设
  • 织梦网站内容替换上海市上海中学校服
  • 南昌企业做网站设计北京沙河教做网站的
  • 电子商务网站建设策划书例子深圳app搭建
  • 想做一个自己设计公司的网站怎么做危险网站怎么解除
  • 网络推广 网站制作多用户商城系统哪种好用
  • 北京做网站哪个好奈曼旗华水建设工程公司网站
  • 门户网站建设公司流程网站后台管理系统安装
  • 潍坊青州网站建设游戏推广合作
  • 大朗镇网站仿做黑龙江哈尔滨网站建设
  • 男女做暖暖不要钱的试看网站公司网站建设合同交印花税吗
  • 自己做免费网站的视频html5手机网站
  • 网站设计规划书怎么写企业网站建设合同
  • 廊坊专业网站建设永久免费低代码开发平台
  • 服装购物网站排名网页设计培训学些什么
  • 为什么要做个人网站偃师制作网站
  • 兰州网站外包qq群推广网站免费
  • 建设市民中心网站网站服务器及运营维护公告
  • 网站建设外包注意什么怎么做不用数据库的网站
  • 网站策划的知识建立企业官方网站