4.22. 相较于 Promise,async/await有何优势?
1. 同步化代码的阅读体验(Promise 虽然摆脱了回调地狱,但 then 链式调⽤的阅读负担还是存在 的)
2. 和同步代码更⼀致的错误处理⽅式( async/await 可以⽤成熟的 try/catch 做处理,⽐ Promise 的 错误捕获更简洁直观)
3. 调试时的阅读性, 也相对更友好
4.23.什么是防抖节流
防抖:单位时间内,频繁触发事件,只执⾏最后⼀次 使⽤场景: 搜索框搜索输⼊,只需⽤户最后⼀次输⼊完,再发送请求 ⼿机号,邮箱验证输⼊检测
节流:单位时间内,频繁触发事件,只执⾏⼀次(前⼀个任务还在,取消触发) 使⽤场景:⿏标移动mousemove, ⻚⾯尺⼨缩放resize,滚动条滚动scroll
4.24.什么是Event Loop
事件循环Event Loop⼜叫事件队列,两者是⼀个概念 事件循环指的是js代码所在运⾏环境(浏览器、nodejs)编译器的⼀种解析执⾏规则。事件循环不属于js 代码本身的范畴,⽽是属于js编译器的范畴,在js中讨论事件循环是没有意义的。换句话说,js代码可以 理解为是⼀个⼈在公司中具体做的事情, ⽽ 事件循环 相当于是公司的⼀种规章制度。 两者不是⼀个层 ⾯的概念。
4.25.常⻅的宏任务与微任务分别有哪些