💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] ## Reflect ## 线程和进程 [**什么是线程和进程?**]() ## 并发与并行 [**什么是并发与并行?**]() ## 同步与异步 [**什么是同步与异步?**]() * 同步 会阻塞当前程序执行 一直等到结果后才会向下执行 * 异步就是等待结果的同时可以先去作别的 然后在处理结果 [**同步任务和异步任务的执行顺序?**]() 1. 先执行同步任务,异步任务首先到Event Table进行回调函数注册、 2. 当异步任务的触发条件满足时,将回调函数从Event Table 压入Event Queue中、 3. 主线程里面的同步任务执行完毕,系统回去Event Queue 中读取异步的回调函数, 4. 只要主线程执行完了就去Event Queue 读取回调函数 。这个过程也叫Event Loop ## Event Loop [**宏任务和微任务有哪些?(都是异步任务)**]() * 宏任务 ~~~jsx script 定时器 Ajax History traversal // h5当中的历史操作 I/O ~~~ * 微任务 ~~~jsx Promise.then process.nextTick // nodejs中的一个异步操作 MutationObserve // h5里面增加的,用来监听DOM节点变化的 Object.observe async/await ~~~ [**Event Loop 执行过程**]() 1. 代码开始执行,创建一个全局调用栈,script作为宏任务执行 2. 执行过程过同步任务立即执行,异步任务根据异步任务类型分别注册到微任务队列和宏任务队列 3. 同步任务执行完毕,查看微任务队列 4. 若存在微任务,将微任务队列全部执行(包括执行微任务过程中产生的新微任务) 5. 若无微任务,查看宏任务队列,执行第一个宏任务,宏任务执行完毕,查看微任务队列,重复上述操作,直至宏任务队列为空 ## 事件流和事件委托 [**什么是事件流**]() 事件流分为三个阶段 * 捕获阶段 * 目标阶段 * 冒泡阶段 IE事件流:事件冒泡流 标准浏览器事件流: 事件捕获流 [**什么是事件委托**]() 利用的事件冒泡 2. 有什么优缺点 * 优点 ~~~jsx 1. 减少事件注册 节省内存 2. 新增子项时 不需要在进行事件绑定 ~~~ * 缺点 ~~~jsx 1. 可能会事件误判,就是本不该被触发的事件被绑定上了事件 ~~~ [**DOM0级事件和DOM2级事件的区别**]() * DOM 把事件写在标签内的是DOM0 * 通过addEventListener、addEvents(IE)绑定的事件 * DOM3级事件 鼠标/键盘事件/UI事件 [**Vue和React 的事件机制是什么**]()