1.ES5/ES6 的繼承除了寫法以外還有什么區(qū)別?
ES5和ES6繼承最大的區(qū)別就是在于:
1.ES5先創(chuàng)建子類,在實例化父類并添加到子類this中
2.ES6先創(chuàng)建父類實例對象this,在實例化子集中通過調用父類的super方法訪問父級后,在通過子類的構造函數(shù)修改this實現(xiàn)繼承
注意:super關鍵字指代父類的實例,即父類的this對象。在子類構造函數(shù)中,調用super后,才可使用this關鍵字,否則報錯
2.http狀態(tài)碼有哪些?分別是什么意思?
HTTP狀態(tài)碼共分為5種類型:
1開頭:(被接受,需要繼續(xù)處理。)
2開頭 (請求成功)
3開頭 (請求被重定向)
4開頭:(請求錯誤)
5開頭:(服務器錯誤)
狀態(tài)碼:
200 (正常;請求已完成。 )
301 (已移動 — 請求的數(shù)據(jù)具有新的位置且更改是永久的。 )
307 (重新請求的URL,客戶端自動重新請求新的地址)
400 (錯誤請求 — 請求中有語法問題,或不能滿足請求。 )
403 (禁止 — 即使有授權也不需要訪問。 )
404 (找不到 — 服務器找不到給定的資源;文檔不存在。 )
405 (資源被禁止 )
414 (請求 - URI 太長 )
500 (內部錯誤 — 因為意外情況,服務器不能完成請求。 )
503 (無法獲得服務 — 由于臨時過載或維護,服務器無法處理請求。 )
101 (服務器將遵從客戶的請求轉換到另外一種協(xié)議)
100 (初始的請求已經(jīng)接受,客戶應當繼續(xù)發(fā)送請求的其余部分。
常見狀態(tài)碼
200 服務器成功處理了請求
304 服務端的資源與客戶端上一次請求的一致,不需要重新傳輸,客 戶端使用本地緩存的即可
400 用于告訴客戶端它發(fā)送了一個錯誤的請求
404 (頁面丟失)未找到資源
500 服務器內部出現(xiàn)了錯誤
501 服務器遇到一個錯誤,使其無法對請求提供服務
3.瀏覽器是如何渲染頁面的?
頁面渲染流程
1、解析文檔構建DOM樹
解析內容可以分為三部分:
1.HTML/XHTML/SVG:解析這三種文件后,會生成DOM樹
2.CSS:解析樣式表,生成CSS規(guī)則樹
3.JavaScript:解析腳本,通過DOM API和CSSOM API操作DOM Tree和CSS Rule Tree,與用戶進行交互。
2、構建渲染樹
解析文檔完成后,瀏覽器引擎會將 CSS Rule Tree 附著到DOM Tree 上,并根據(jù)DOM Tree 和 CSS Rule Tree構造 Rendering Tree(渲染樹)
注意:
將CSS規(guī)則樹匹配到DOM樹需要解析CSS選擇器,為提高性能,DOM樹應盡量小,所以應該盡量使用id和class,避免過度層疊。
3、布局與繪制渲染樹
解析position, overflow, z-index等等屬性,計算每一個渲染樹節(jié)點的位置和大小,此過程被稱為reflow。最后調用操作系統(tǒng)的Native GUI API完成繪制(repain)
4.typeof和instanceof相同點與不同點
相同點:
JavaScript 中 typeof 和 instanceof 用來判斷一個變量是否為空, 或者是什么類型的。
不同點:
typeof:
1.返回值是一個字符串, 用來說明變量的數(shù)據(jù)類型。
2.typeof 一般只能返回如下幾個結果: number, boolean, string, function, object, undefined。
instanceof:
1.返回值為布爾值; 2. instanceof 用于判斷一個變量是否屬于某個對象的實例。