2022-03-01

什么是回調(diào)地獄,如何解決?

回調(diào)地獄就是為了實(shí)現(xiàn)代碼順序執(zhí)行的一種操作,它會讓這個(gè)代碼的可讀性非常差,不好維護(hù)。
那么我們可以Promise來解決這個(gè)問題,Promise是一種異步編程的解決方案。
1.Promise構(gòu)造函數(shù)接收一個(gè)函數(shù)作為參數(shù),我們需要處理的異步任務(wù)就卸載該函數(shù)體內(nèi),該函數(shù)的兩個(gè)參數(shù)是resolve,reject。異步任務(wù)執(zhí)行成功時(shí)調(diào)用resolve函數(shù)返回結(jié)果,反之調(diào)用reject。
2.Promise對象的then方法用來接收處理成功時(shí)響應(yīng)的數(shù)據(jù),catch方法用來接收處理失敗時(shí)相應(yīng)的數(shù)據(jù)。
3.Promise的鏈?zhǔn)骄幊炭梢员WC代碼的執(zhí)行順序,前提是每一次在than做完處理后,一定要return一個(gè)Promise對象,這樣才能在下一次then時(shí)接收到數(shù)據(jù)。


圖片1.png

async/await

還有另外一種異步編程的解決方案就是async await,用法就是如果一個(gè)函數(shù)前面寫了async,就表明這個(gè)函數(shù)是一個(gè)異步,不會阻塞后面函數(shù)的執(zhí)行。然后如果你去打印這個(gè)函數(shù)的返回值時(shí),其實(shí)是一個(gè)Promise對象。所以我們可以在這個(gè)函數(shù)后面使用.then,.catch的方法。然后await關(guān)鍵字只能在async定義的函數(shù)中使用,await后面一般是跟一個(gè)Promise實(shí)例對象,并且可以拿到這個(gè)實(shí)例中resolve的數(shù)據(jù)。然后必須等await后面這一步成功之后才會繼續(xù)走下面的代碼,這樣就保證了代碼的執(zhí)行順序。

移動端適配

1.視口適配:通過meta標(biāo)簽設(shè)置name屬性為viewport
2.媒體查詢適配:當(dāng)屏幕寬度滿足什么條件時(shí)使用什么樣式
3.使用js來適配:獲取屏幕的寬度然后修改樣式
4.Rem適配

This指向

this指向:指向調(diào)用者,默認(rèn)是指向window,但是箭頭函數(shù)的this是外層上下文的this

微任務(wù)和宏任務(wù)

Js是單線程的,如果遇到異步的任務(wù)會交給瀏覽器處理
主線程要執(zhí)行的代碼=宏任務(wù)
定時(shí)器/延時(shí)器=宏任務(wù)
只有上一個(gè)宏任務(wù)執(zhí)行完才會執(zhí)行下一個(gè)宏任務(wù)
微任務(wù)就是promise .then .catch需要執(zhí)行的內(nèi)容
在事件循環(huán)隊(duì)列中,微任務(wù)會插隊(duì)

談一談keep-alive這個(gè)組件的實(shí)現(xiàn)原理

我們?nèi)绾卧趘ue項(xiàng)目中應(yīng)用我們的權(quán)限

談一談在vue項(xiàng)目中如何去做我們的導(dǎo)航守衛(wèi)

描述一下document.load和document.ready之間的一個(gè)區(qū)別

Js如何檢測一個(gè)字符串的類型

如何檢測一個(gè)變量是string類型

==和===的區(qū)別

什么是事件委托 事件冒泡

Js new操作符到底做了什么事情

Js如何實(shí)現(xiàn)繼承以及他的優(yōu)缺點(diǎn)

什么叫原型 原型鏈

描述一下什么叫作用域 作用域鏈

描述一下我們的瀏覽器緩存,服務(wù)器緩存和cdn緩存

描述一下你對閉包的理解以及優(yōu)缺點(diǎn),以及閉包所引起的內(nèi)存泄露的解決方案

那數(shù)據(jù)中如何實(shí)現(xiàn)代理,有哪些方式能夠?qū)崿F(xiàn)跨域通信

描述一下jsonp是如何實(shí)現(xiàn)跨域請求以及優(yōu)缺點(diǎn)

什么叫值類型?什么叫引用類型?

描述一下我們前端的堆和棧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、HTML 1.1 你是如何理解HTML語義化的? 語義化指的就是根據(jù)內(nèi)容的結(jié)構(gòu)化,選擇合適的標(biāo)簽,便于開發(fā)者閱...
    陳光展_Gz閱讀 1,050評論 0 8
  • 1、從輸入url到瀏覽器呈現(xiàn)頁面中間經(jīng)歷了什么? 在輸入url的時(shí)候,會進(jìn)行本地歷史記錄和標(biāo)簽頁的查詢,提供模糊查...
    林思念閱讀 2,949評論 2 24
  • 0 HTML5相關(guān) websocket WebSocket 使用ws或wss協(xié)議,Websocket是一個(gè)持久化的...
    可愛多小姐閱讀 1,008評論 0 0
  • 事件輪詢
    鴻澤云碼閱讀 301評論 0 1
  • 一、xue的生命周期是什么 vue每個(gè)組件都是獨(dú)立的,,每個(gè)組件都有一個(gè)屬于他的生命周期,從一個(gè)組件創(chuàng)建、數(shù)據(jù)初始...
    康娜閱讀 1,250評論 0 0

友情鏈接更多精彩內(nèi)容