前端面試再準備

1.瀏覽器渲染過程補充:

1.1瀏覽器會不會緩存dns(dns解析,會的)

1.2瀏覽器解析數據是全部接受了再解析還是一邊接收一邊解析

之前我們說了renderTree的概念,瀏覽器在進行renderTree的繪製的時候,不會等待全部的html文件加完,整個

不會,瀏覽器會一邊接受html文件,一邊繪製,遇到scirpt標籤的時候會停止渲染

https://blog.csdn.net/qq_32657025/article/details/79569213

1.3如果加載一個<link>需要10秒,那麼如果這個標籤在head和body之前,會發生什麼

link表示是異步並行的!!!!也就是下面的不同的link標籤會並行下載,和@import區別在於,@import是CSS的方式,它會在頁面加載完了再加載,這個不太好

<head>
<link rel="stylesheet" type="text/css" href="theme.css" />
<link rel="stylesheet" type="text/css" href="theme.css" />
<link rel="stylesheet" type="text/css" href="theme.css" />
<link rel="stylesheet" type="text/css" href="theme.css" />
<link rel="stylesheet" type="text/css" href="theme.css" />
</head>

1.4如果加載一個script標籤需要10秒,那麼這個標籤在head和body紙質件,加載的時候會怎麼樣,如果是內聯呢

外聯腳本會停止渲染,內聯的話也會停止渲染,總之遇到js腳本就會先執行

頁面會等待srcipt的src的資源下載,下載完後js腳本立即執行,js的下載的執行都會阻斷頁面的渲染,我們可以用defer和async去修飾<script async/defer src='www.bank.com/api/do.js'/> 讓js腳本異步加載,不同在於async是加載完後就執行,但是defer加載的腳本會在瀏覽器的DomContentOnload和load(onload)之間執行,前者是DOM文檔解析,解析完了就觸發這個事件,但是window的onload(load)則是整個包括img,scirpt這樣的元素加載完了纔會執行。

2.Js內容補充

2.1尾遞歸和尾遞歸優化(循環和遞歸的效率之分)

2.2手寫快速排序和圖的廣/深度優先搜索

2.3setTimeOut準嗎

setTimeOut是在指定時間後把函數放入異步宏任務隊列當中,並不保證是在指定時間後執行函數

2.4基本數據類型string爲什麼可以訪問到length屬性

2.5原生Js操作DOM的方式,創建DOM,增加DOM,添加子節點,附加到父節點,查找兄弟節點

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章