目錄:
1忆植,ES5/ES6 的繼承除了寫(xiě)法以外還有什么區(qū)別小渊?
2法褥,http狀態(tài)碼有哪些?分別是深?lèi)阂馑迹?/p>
3酬屉,瀏覽器是如何渲染頁(yè)面的半等?
4,typeof和instanceof相同點(diǎn)與不同點(diǎn)
5呐萨,如何解決回調(diào)地獄杀饵?請(qǐng)手寫(xiě)代碼
一:ES5/ES6 的繼承除了寫(xiě)法以外還有什么區(qū)別?
1谬擦,ES5寄生組合式繼承
2切距,ES6繼承
ES6中子類(lèi)繼承父類(lèi)的屬性使用了super關(guān)鍵字,ES6語(yǔ)法實(shí)現(xiàn)是ES5的語(yǔ)法糖惨远,表面上蔚舀,ES6的類(lèi)關(guān)鍵字和子類(lèi)繼承關(guān)鍵字 實(shí)現(xiàn)的結(jié)構(gòu)和ES5繼承一樣,但是根本還是有差別的锨络,ES5繼承prototype屬性是先實(shí)例化父類(lèi)赌躺,直接繼承;而 ES6是在實(shí)例化子類(lèi)對(duì)象時(shí)繼承父類(lèi)的prototype,即實(shí)例化父類(lèi)羡儿。
二:http狀態(tài)碼有哪些礼患?分別是什么意思?
1**(信息類(lèi)):表示接收到請(qǐng)求并且繼續(xù)處理
100? Continue? 繼續(xù),一般在發(fā)送post請(qǐng)求時(shí)缅叠,已發(fā)送了http header之后服務(wù)端將返回此信息悄泥,表示確認(rèn),之后發(fā)送具體參數(shù)信息
2**(響應(yīng)成功):表示動(dòng)作被成功接收肤粱、理解和接受
200? OK? ? ? ? 正常返回信息
201? Created? ? 請(qǐng)求成功并且服務(wù)器創(chuàng)建了新的資源
202? Accepted? 服務(wù)器已接受請(qǐng)求弹囚,但尚未處理
3**(重定向類(lèi)):為了完成指定的動(dòng)作,必須接受進(jìn)一步處理
301? Moved Permanently? 請(qǐng)求的網(wǎng)頁(yè)已永久移動(dòng)到新位置领曼。
302? Found? ? ? 臨時(shí)性重定向鸥鹉。
303? See Other? 臨時(shí)性重定向,且總是使用 GET 請(qǐng)求新的 URI庶骄。
304? Not Modified 自從上次請(qǐng)求后毁渗,請(qǐng)求的網(wǎng)頁(yè)未修改過(guò)。
4**(客戶端錯(cuò)誤類(lèi)):請(qǐng)求包含錯(cuò)誤語(yǔ)法或不能正確執(zhí)行
400? Bad Request? 服務(wù)器無(wú)法理解請(qǐng)求的格式单刁,客戶端不應(yīng)當(dāng)嘗試再次使用相同的內(nèi)容發(fā)起請(qǐng)求灸异。
401? Unauthorized 請(qǐng)求未授權(quán)。
403? Forbidden? 禁止訪問(wèn)羔飞。
404? Not Found? 找不到如何與 URI 相匹配的資源肺樟。
5**(服務(wù)端錯(cuò)誤類(lèi)):服務(wù)器不能正確執(zhí)行一個(gè)正確的請(qǐng)求
500? Internal Server Error? 最常見(jiàn)的服務(wù)器端錯(cuò)誤。
503? Service Unavailable 服務(wù)器端暫時(shí)無(wú)法處理請(qǐng)求(可能是過(guò)載或維護(hù))逻淌。
三:瀏覽器是如何渲染頁(yè)面的么伯?
1,簡(jiǎn)述瀏覽器渲染過(guò)程
1恍风,解析HTML以構(gòu)建DOM樹(shù):渲染引擎開(kāi)始解析HTML文檔,轉(zhuǎn)換樹(shù)中的html標(biāo)簽或js生成的標(biāo)簽到DOM節(jié)點(diǎn)誓篱,它被稱為 — 內(nèi)容樹(shù)朋贬。
2,構(gòu)建渲染樹(shù):解析CSS(包括外部CSS文件和樣式元素以及js生成的樣式)窜骄,根據(jù)CSS選擇器計(jì)算出節(jié)點(diǎn)的樣式锦募,創(chuàng)建另一個(gè)樹(shù) — 渲染樹(shù)。,
3邻遏,布局渲染樹(shù): 從根節(jié)點(diǎn)遞歸調(diào)用糠亩,計(jì)算每一個(gè)元素的大小、位置等准验,給每個(gè)節(jié)點(diǎn)所應(yīng)該出現(xiàn)在屏幕上的精確坐標(biāo)赎线。
4,繪制渲染樹(shù): 遍歷渲染樹(shù)糊饱,每個(gè)節(jié)點(diǎn)將使用,
2.CSS阻塞渲染
CSS 是阻塞渲染的資源垂寥。需要將它盡早、盡快地下載到客戶端,以便縮短首次渲染的時(shí)間滞项。
這就是為什么我們將外部樣式的引入放在head標(biāo)簽中的原因狭归,在body渲染前先把相對(duì)完整CSSOM Tree構(gòu)建好。
3.JavaScript阻塞渲染
JavaScript 會(huì)阻止 DOM 構(gòu)建和延緩網(wǎng)頁(yè)渲染文判。 為了實(shí)現(xiàn)最佳性能过椎,可以讓您的JavaScript 異步執(zhí)行,并去除關(guān)鍵渲染路徑中任何不必要的 JavaScript戏仓。