面试必问EventLoop事件

【前端面试题】事件循环event_loop JavaScript是一个单线程语言。 任务分为同步任务和异步任务。 同步任务就是立即执行的任务,同步任务会进入主线程立即执行,当浏览器遇到异步任务时,会将异步任务扔到异步队列中去,等同步任务执行完毕后,再按照“微先宏后”的执行顺序依次执行异步任务。 “微先宏后”就是在异步任务队列中微任务先执行,宏任务后执行。 微任务包括:promise 宏任务包括:setTimeout、setInterval、UI交互、IO、script整体代码 下面来看面试题,先看题目,思考后有自己的想法再看题目结果,有不 阅读详情

EventLoop事件

1.首先,我们必须清楚javascript,是一门 单线程的语言,意思是,当我们执行时,只能同时进行一件事情。
在这里插入图片描述
那么会产生什么问题: 当一个任务消耗的时间 非常的长的时候,后面的任务只能排队等待,形成程序假死的现象。

2.我们需要知道 什么是同步任务和异步任务,知道是谁来执行 这两个任务
在这里插入图片描述
所以: 同步任务 是 我们 js在执行; 异步任务 是 js的寄宿环境在执行(js可以在很多环境中运行,比如,浏览器,node)

3.接下来看一下同步任务和异步任务的执行过程
在这里插入图片描述
这一步怎么来解释呢? 我们来, 举个例子 ,比如,我们一个米其林餐厅的大厨接到一个任务 让他做一个蒜香小龙虾,和其他的菜,这就 向我们左边的流程接到一个任务,蒜香小龙虾,这其中 有很多步骤 剥蒜 去虾线等等异步任务 ,大厨把这些任务交给他的徒弟去做(相当于程序右边的寄宿环境区),自己先去做其他比较容易的菜,徒弟,做完这些活,把食材放到固定的位置(下方的任务列表),等做完一个菜,去查看食材备好了没有,如果没有,就继续做其他的菜,如果有,就做蒜香小龙虾,这个过程 会一直循环,只要大厨有时间 就会去 查看,这个就本上就是我们说的EventLoop事件。

4.那么我们接下来看一下,异步任务中 又是怎么进行的?
我们来了解一下 宏任务和微任务
在这里插入图片描述
看完之后,我们 要知道 什么任务 是宏任务? 异步Ajax请求 setTimeout setInterval 文件操作(读取文件 readFile 写入文件 writeFile)
什么任务 是 微任务呢? Promise.then .catch 和.finally 还有是 process.nextTick
5.再来看一下 他们的执行过程
在这里插入图片描述
总结:
1.我们执行js文件是,从上到下开始顺序进行,首先将任务分为同步任务 和 异步任务,遇到同步 执行,
2.将遇到的异步任务 放到 寄宿环境中 ,寄宿环境 代为执行
3.同步任务 执行 之后 去任务队列中 查看 有没有 微任务(这个微任务使我们主线程同步任务附加的微任务),有微任务,执行微任务 ,没有微任务 去找宏任务
4,执行宏任务,执行完之后 去查看 这个宏任务有没有 附加的微任务 ,有执行微任务,没有进行下一个宏任务。
5,所有的进行完之后 会在去任务列表中 查看 有没有任务 一直进行中。。。。

js代码-浏览器的event loop面试题 立即下载

相关推荐

用Matlab系统辨识工具箱搞定温控系统建模:从阶跃响应到传递函数(附完整代码)

本文详细介绍了如何使用Matlab系统辨识工具箱进行温控系统建模,从阶跃响应数据采集到传递函数参数辨识的全过程。通过实际案例和完整代码,帮助工程师快速掌握PID控制参数整定技巧,提升温控系统设计效率。特别适合单片机开发者和自动化控制工程师参考。

weixin_30736301的博客 309

面试题:事件循环(Event Loop)

在日常工作中,你有没有碰到过这种疑惑: 疑惑一:为什么这份代码它不按照我的意思走?为啥不是输出 1 2 3? for (var i = 0; i < 3; i++) { setTimeout(() => { console.log(i); // 3 3 3 }, 1000); } 疑惑二:为什么这份代码它也不按照我的意思走?为啥不是输出 jsliang? let name; setTimeout(() => { name = '梁峻荣'; console

明天也要努力的博客 5693

海波龙(Oracle Hyperion)单点登陆问题记录

Oracle海波龙套件已经多年未更新,按Oracle官方文档实施单点登陆启用之后,SmartView工具通过专用链接方式无法登陆系统。 在抓包逆向分析之后 定位到HspSmartViewServlet类在执行以下代码时获得的ssotoken无效导致,在某大厂工作的时候曾通过在filter中截获请求的方式植入Attribute,保留账号密码并在单点程序中处理实现登陆。 但在完美世界的环境中...

cainiaoEzu的专栏 1970

事件循环(Event Loop)相关概念 及 面试题

小伙伴们,看面试题前,先来看几个概念吧!!! 宏任务 (macro)task,可以理解是每次执行栈执行的代码就是一个宏任务(包括每次从事件队列中获取一个事件回调并放到执行栈中执行)。 任务(代码) 宏任务 环境 script 宏任务 浏览器 事件 宏任务 浏览器 网络请求(Ajax) 宏任务 浏览器 setTimeout() 定时器 宏任务 浏览器 / Node fs.readFile() 读取文件 宏任务 N

m0_67841039的博客 1186

LeRobot — 基于 PyTorch 的真实世界机器人学习框架(一)- 核心框架模块解析

LeRobot 是一个开源的机器人学习框架,由 Hugging Face 开发,旨在降低机器人学的准入门槛。该框架提供完整的机器学习流程支持,包括数据采集、训练、评估和部署。核心模块涵盖数据集标准化、策略算法、硬件抽象和强化学习组件,采用模块化设计实现灵活扩展。通过集成 Hugging Face Hub,用户可以轻松共享数据集和预训练模型。LeRobot 特别注重真实世界的机器人应用,支持多种前沿算法如模仿学习、视觉语言动作模型等,并提供统一的硬件接口和仿真环境适配。

熊猫小妖的AI世界 171

YOLOv11改进策略【损失函数篇】| Shape-IoU:考虑边界框形状和尺度的更精确度量

本文记录的是改进YOLOv11的损失函数,将其替换成Shape-IoU。现有边界框回归方法通常考虑与之间的几何关系,通过边界框的相对位置和形状计算损失,但忽略了边界框本身的形状和尺度等固有属性对边界框回归的影响。为了弥补现有研究的不足,Shape-IoU提出了一种关注边界框本身形状和尺度的边界框回归方法。

Limiiiing的博客 4595

event loop 面试题

题目一 async function async1() { console.log('async1 start'); await async2(); console.log('async1 end'); } async function async2() { new Promise(function (resolve) { console.log('promise1'); resolve(); }).then(function () {

weixin_49115895的博客 826

MC_SetOverride指令详细应用介绍(基恩士PLC)

基恩士KV系列PLC和松下总线绝对值伺服运动控制(详细配置+轴控完整ST源代码)

RXXW_Dor的博客 334

从手写 Promise 到 Event Loop:前端异步面试题全解读

JS异步编程是面试中的"送命题",涉及事件循环、任务队列等核心概念。文章从手写Promise入手,解析状态流转、异步调度和回调存储机制,并讲解EventLoop执行顺序(宏/微任务区别)和async/await的底层实现。通过典型代码示例演示执行顺序,对比Node.js与浏览器环境差异,指出process.nextTick在Node中的优先执行特点。最后强调系统化理解异步机制的重要性,提供学习交流渠道。全文精炼解析JS异步编程的关键知识点。

Anthony1453的博客 1968

2025华为杯第二十二届中国研究生数学建模竞赛D题:低空湍流监测及最优航路规划 - 完整解题分析+完整MATLAB源码!(上篇)

🎓 本文收录于 《滚雪球学数学建模》专栏,本专栏专注于从零基础出发,带你循序渐进掌握数学建模的核心方法与思维路径。通过“滚雪球式”学习法,从最简单的生活化案例到经典建模工具,再到省赛、国赛真题实战演练,逐步积累知识与技能,帮助你搭建完整的建模体系。无论你是刚接触建模的新生,还是希望提升科研与竞赛能力的学者与工程师,本专栏都将为你提供一条清晰、高效、可实操的建模成长路线,助力你快速进阶,突破难点,迈向数学建模竞赛与实际应用的更高峰 🚀!

**My Coding Family** 2584

华为嵌入式面试题及参考答案(持续更新)

异步是指在程序执行过程中,某些任务不需要等待立即完成就可以继续执行其他任务的过程。在计算机编程中,异步通常用于处理长时间运行的操作,如文件读写、网络通信等,以避免阻塞主线程。异步处理通常涉及到回调函数、事件循环、协程或未来的概念。使用宏定义来避免命名冲突。#else#endif堆和栈是计算机程序中用于存储数据的两种不同类型的内存区域。

大模型大数据攻城狮的专栏 2483

js面试——eventLoop

什么是eventLoop? event loop指的是一种运行机制,规定了JS引擎是如何运行代码的。 为什么会有eventLoop? 由于JS是单线程执行的,所以任务(代码)的执行需要进行排队。任务分为两种:同步和异步,针对异步任务,首先会被推到任务队列中,然后根据event loop机制进行执行 JS运行机制 以上为事件循环示例图: step1:主线程读取JS代码,此时为同步环境,形成相应的堆和执行栈; step2:主线程遇到异步任务,指给对应的异步进程进行处理(WEB ...

张小杰 947

在Android中实现SIM卡的读写操作

在上述代码中,我们创建了一个PhoneStateListener的实例,并重写了onSimStateChanged方法来处理SIM卡状态改变的事件。然后,我们通过调用telephonyManager的listen方法注册了这个监听器,并指定了要监听的事件类型为SIM卡状态的改变。在上述代码中,我们调用telephonyManager的sendUssdRequest方法来发送USSD命令,并通过TelephonyManager.UssdResponseCallback来处理USSD响应和发送失败的情况。

2301_79326510的博客 923

web前端高级JavaScript - JavaScript中事件(任务)循环机制EventLoop及面试题

Js中的事件循环机制EventLoop 在JavaScript代码自上而下执行过程中,分为同步任务和异步任务,异步任务又分为异步微任务和异步宏任务,同步任务也是宏任务。 【常见的异步微任务】 promise async/await requestAnimationFrame 【常见的异步宏任务】 定时器setTimeout ajax(HTTP网络请求) 事件绑定 … 在主线程自上而下执行js代码时,同步宏任务会优先执行,如果遇到上述异步任务,不会立即执行,而是把这些异步任务存放到E

lixiaosenlin的专栏 5741

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

「Java面试必看」Netty面试必问的知识点整理

这么说吧!EventLoop(事件循环)接口可以说是 Netty 中最核心的概念了!EventLoop定义了 Netty 的核心抽象,用于处理连接的生命周期中所发生的事件。是不是很难理解?说实话,我学习 Netty 的时候看到这句话是没太能理解的。说白了,EventLoop的主要作用实际就是责监听网络事件并调用事件处理器进行相关 I/O 操作(读写)的处理。无论是哪家公司,都很重视基础,大厂更加重视技术的深度和广度,面试是一个双向选择的过程,不要抱着畏惧的心态去面试,不利于自己的发挥。

2401_83916283的博客 1128

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

解读前端面试 EventLoop事件循环机制

EventLoop是计算机系统的一种运行机制。JavaScript语言就采用这种机制,它是一种单线程语言,所有任务都在一个线程上完成,一旦遇到大量任务或者遇到一个耗时的任务,网页就会出现"假死",因为JavaScript停不下来,也就无法响应用户的行为。为了解决这个问题JS中出现了同步任务和异步任务。简单来说:eventloop事件循环机制 是指浏览器或Node运行环境里解决javaScript单线程运行时不会阻塞的一种机制,也是我们经常在项目里使用异步 promise / async await 的原因。

无理. 的博客 548

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

【面试题】440- 10 道 Nodejs EventLoop 和事件相关面试题

有理想的人,生活总是火热的。—— 斯大林通过对以下 10 个面试题的分享,助您更好的理解 Node.js 的事件和 EventLoop 相关知识作者简介:五月君,Nodejs Devel...

pingan8787 456

从一道面试题谈谈对 EventLoop 的理解

作者:前端自学驿站,原文链接:https://juejin.im/post/6868849475008331783前言因为掘金改版之后对于字数有了一定的限制(亲测了下在12500字左右,...

程序员成长指北 1710

分享 10 道 Nodejs EventLoop 和事件相关面试题

有理想的人,生活总是火热的。 —— 斯大林 通过对以下 10 个面试题的分享,助您更好的理解 Node.js 的事件和 EventLoop 相关知识 作者简介:五月君,Nodejs Developer,慕课网认证作者,热爱技术、喜欢分享的 90 后青年,欢迎关注 Nodejs技术栈 和 Github 开源项目 https://www.nodejs.red 快速导航 Node.js 中定...

嘿嘿 471

JS - 事件循环EventLoop

事件循环

Xxxxxl17的博客 819

经典面试题----Eventloop(事件循环)

Event Loop即事件循环,是指浏览器或Node的一种解决javaScript单线程运行时不会阻塞的一种机制,也就是我们经常使用异步的原理。 JavaScript代码的执行过程中,除了依靠函数调用栈来搞定函数的执行顺序外,还依靠任务队列(task queue)(先进先出)来搞定另外一些代码的执行 Javascript单线程任务被分为同步任务和异步任务,同步任务会在调用栈中按照顺序等待主线程...

菜鸟的博客 5942

事件循环机制 => EventLoop详解

前言 面试官:说说异步代码的执行顺序?Event Loop 的运行机制是如何的运行的? 什么是 EventLoop ? 先看这张图,先不管宏任务,微任务是什么,先看整个流程。 分析: 判断宏任务队列是否为空 不空 --> 执行最早进入队列的任务 --> 执行下一步 空 --> 执行下一步 判断微任务队列是否为空 不空 --> 执行最早进入队列的任务 --> 继续检查微任务队列空不空 空 --> 执行下一步 因为首次执行宏队列中会有 script

小小前端攻城狮的博客 1584

async和await概念 浏览器EventLoop事件循环 以及一些遇到的相关面试题

async和await概念 浏览器EventLoop事件循环 以及一些遇到的相关面试题

m0_74076766的博客 433

面试前端八股文十问十答第四期

相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新!⭐。

qq_67358181的博客 1571
上一篇: yarn包管理器(必须)操作
下一篇: 数组的方法 中哪些会更新原数组 哪些不会
learntogiveup
博客等级 码龄5年 7粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值