1.什么是單線程堕汞,和異步的關系
? ? ? ?(1) 單線程 - 只有一個線程,只能做一件事
? ? ? ? (2)原因 - 避免 DOM 渲染的沖突
? ?????????????? 瀏覽器需要渲染 DOM
? ??????????????JS 可以修改 DOM 結(jié)構
? ??????????????JS 執(zhí)行的時候复隆,瀏覽器 DOM 渲染會暫停
? ??????????????兩段 JS 也不能同時執(zhí)行(都修改 DOM 就沖突了)
? ??????????????webworker 支持多線程拨匆,但是不能訪問 DOM
? ? ? ? (3)解決方案 - 異步
2.什么是 event-loop
????????實際上,主線程只會做一件事情挽拂,就是從消息隊列里面取消息惭每、執(zhí)行消息,再取消息亏栈、再執(zhí)行台腥。當消息隊列為空時,就會等待直到消息隊列變成非空绒北。而且主線程只有在將當前的消息執(zhí)行完成后览爵,才會去取下一個消息。這種機制就叫做事件循環(huán)機制镇饮,取一個消息并執(zhí)行的過程叫做一次循環(huán)蜓竹。
????????(1)事件輪詢,JS 實現(xiàn)異步的具體解決方案
????????(2)同步代碼储藐,直接執(zhí)行
? ? ? ? (3)異步函數(shù)先放在 異步隊列 中
? ? ? ? (4)待同步函數(shù)執(zhí)行完畢俱济,輪詢執(zhí)行 異步隊列 的函數(shù)
3.Promise 的基本使用和原理
? ? ? ? (1)基本語法回顧
? ? ? ? (2)異常捕獲
? ? ? ? (3)多個串聯(lián)
? ? ? ? (4)Promise.all 和 Promise.race
? ? ? ? (5)Promise 標準
4.介紹一下 async/await
? ? ? ? (1)then 只是將 callback 拆分了
? ? ? ? (2)async/await 是最直接的同步寫法
? ? ? ? (3)語法