1. 程式人生 > >常見面試題整理---前端(不論出處)

常見面試題整理---前端(不論出處)

都在 需要 優先級調度 正則 很難 定時 http http請求 連接

1.瀏覽器渲染頁面的過程

用戶輸入URL地址
瀏覽器解析URL解析出主機名
瀏覽器將主機名轉換成服務器ip地址(瀏覽器先查找本地DNS緩存列表 沒有的話 再向瀏覽器默認的DNS服務器發送查詢請求 同時緩存)
瀏覽器將端口號從URL中解析出來
瀏覽器建立一條與目標Web服務器的TCP連接(三次握手)
瀏覽器向服務器發送一條HTTP請求報文
服務器向瀏覽器返回一條HTTP響應報文
關閉連接 瀏覽器解析文檔

2.異步編程的四種方法

①回調②事件監聽③觀察者模式(發布和訂閱)④promise

3.解釋同步異步、阻塞非阻塞、並行並發之間的區別

  阻塞調用是指調用結果返回之前,調用者會進入阻塞狀態等待。只有在得到結果之後才會返回。

  非阻塞調用是指在不能立刻得到結果之前,該函數不會阻塞當前線程,而會立刻返回。

  同步:在發出一個同步調用時,在沒有得到結果之前,該調用就不返回。

  異步:在發出一個異步調用後,調用者不會立刻得到結果,該調用就返回了。

 並發是指一個時間段內,有幾個程序都在同一個CPU上運行,但任意一個時刻點上只有一個程序在處理機上運行。
 並行是指一個時間段內,有幾個程序都在幾個CPU上運行,任意一個時刻點上,有多個程序在同時運行,並且多道程序之間互不幹擾。

4.CPU調度策略

在並發運行中,CPU需要在多個程序之間來回切換,那麽如何切換就有一些策略

1 先來先服務 - 時間片輪轉調度

這個很簡單,就是誰先來,就給誰分配時間片運行,缺點是有些緊急的任務要很久才能得到運行。

2 優先級調度 每個線程有一個優先級,CPU每次去拿優先級高的運行,優先級低的等等,為了避免等太久,每等一定時間,就給線程提高一個優先級 3 最短作業優先 把線程任務量排序,每次拿處理時間短的線程運行,就像我去銀行辦業務一樣,我的事情很快就處理完了,所以讓我插隊先辦完,後面時間長的人先等等,時間長的人就很難得到響應了。 4 最高響應比優先 用線程的等待時間除以服務時間,得到響應比,響應比小的優先運行。這樣不會造成某些任務一直得不到響應。 5 多級反饋隊列調度 有多個優先級不同的隊列,每個隊列裏面有多個等待線程。 CPU每次從優先級高的遍歷到低的,取隊首的線程運行,運行完了放回隊尾,優先級越高,時間片越短,即響應越快,時間片就不是固定的了。 隊列內部還是用先來先服務的策略。

5.js實現數值千分位

6.React非父子、兄弟組件傳值

共用父組件然後Props傳值、使用狀態管理redux(推薦)等

7."123456789876543212345678987654321..."的第n位是什麽?

8.如何實現自己實現過Promise

9.new 一個對象後發生了什麽?

10.說一下原型和原型鏈

11.有沒有自己寫過比較復雜的正則?

12.有沒有封裝過axios?

前後分離的系統,一個請求出錯了,如何中斷其它請求?

如何在axios中添加登陸驗證?

常見面試題整理---前端(不論出處)