事件循环
进程和线程
- 进程:计算机运行的程序,操作系统管理程序的一种方式
- 线程:运行调度的最小单位,被包含在进程中
浏览器的事件循环
1. JavaScript是单线程的,但JavaScript的线程应该有自己的容器进程:浏览器,node
2. 浏览器是多进程的,每开一个tab,就新增一个进程,每个进程中有多个线程如: javascript线程
3. 单线程,同一时刻只能做一件事,如果这件事很耗时,意味着阻塞
4. 事件队列:setTimeout,点击操作,网络请求、Promise
5. 事件队列是在执行上下文栈为空时执行
宏任务和微任务
事件队列中分为:
宏任务:macrotask, 如:ajax、setTimout、setInterval、DOM监听、UI Readering等
微任务:microtask, 如:Promise的then回调,Mutation Observer API、queueMicroTask()等
队列执行顺序:每次执行宏任务之前,会先执行微任务队列,必须保证微任务队列为空,如果不为空则依旧执行微任务
错误处理方案
/*
throw new Error()
throw '异常错误'
try {
} catch (error) {
} finally {
// 无论成功或失败都会执行
}
*/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署