2019屆個推前端面經

LuckyFBB發表於2019-03-06

記錄2019.1.19個推前端面試。

筆試

下午1.30左右到了公司,先做了一下筆試題。大致內容如下:

  1. 什麼時候display: inline-block會產生間隙?如何解決?

  2. 如何把span元素放到距離瀏覽器頂部20px左邊200px?

  3. 什麼時候會產生CSS阻塞?什麼時候會產生JS阻塞?

  4. 寫出下列程式碼結果

let x= [1, 2]
let { ...y } = x
console.log(y)    //{0: 1, 1: 2}
  1. 什麼情況下發生重繪/迴流

  2. JS如何實現繼承,如何避免原型鏈上資料共享?

  3. 一道關於事件機制的輸出問題。(setTimeout, promise, then)

setTimeout(function () {
  console.log(1)
}, 0)

new Promise(function (resolve) {
  console.log(2)
  resolve()
  console.log(3)
}).then(function () {
  console.log(4)
})

console.log(5)    //2 3 5 4 1
  1. 實現二分查詢,已經演算法複雜度。

一面

一面是兩個哥哥來面試的,一個看起來比較嚴肅,一個小哥看起來白淨溫和一些。第一次經歷兩個老哥同時面試,心裡絲毫沒有波瀾是不可能的。

  1. 簡單的自我介紹。主要講了一下自己的實習經歷以及使用的技術棧。

  2. 因為看到我簡歷上面寫了三個技術棧,詢問了一下我對三大框架的看法。(純屬瞎扯

  3. 就面試題的事件機制的問題,展開了提問。講了一下同步/非同步任務,巨集任務/微任務。然後問了resolve()之後的值是否會列印?在promise裡面新增return的效果。(回答得一塌糊塗

  4. 輸入url到頁面展示的過程。在整個過程之中,有什麼可以優化的點?(請求那一塊不太熟悉,講了一下重繪/迴流,結合了一下專案

  5. ES6裡面用過的方法。(let/const, Object新增方法, 擴充套件符, Promise, class, module)

  6. promise裡面都用過什麼方法。(沒辦法,我太菜了,只能講一下then,catch,all)。然後問了一下什麼樣的異常能夠在內部捕獲到(當時全場寂靜,面試官也會過了)。聊到了promise.all,傳送多條請求的,然後發生異常什麼的。(然後我結合實際專案將可以對這個使用)。接著又被面試官問到,all的一個弊端就是必須全部resolve返回,會出現超時的情況怎麼處理之類的。被面試官普及到了race這個方法。

  7. 討論了一下sort排序裡面使用的是什麼排序方法。

  8. 問了一下css選擇器的問題,經常使用的選擇器。然後選擇器的匹配方式(先匹配哪一個)。+/>/~分別是什麼選擇器。

  9. 專案中使用了localstorage/sessionstorage,問了一下兩者的區別。開啟一個新的標籤頁sessionstorage會不會失效之類的。他們儲存的大小是多少。

  10. 看我部落格裡面寫了節流和防抖,問了一下這兩個區別(回答的並不是很清楚),瞎扯一下專案中為什麼會使用這兩個概念。

  11. 手寫合併兩個有序陣列(感覺像是歸併排序最後一步)。

  12. 未來的職業規劃,以及想問他們的問題。

大概是我能夠想起來的一面內容,很多問題都沒回答上來,遇到一些不會的問題,他們也會回答一下。大概面試了一個小時的樣子,雖然感覺不是很好,還是讓我稍等一下。然後迎來了二面。

二面

二面面官來的時候,一不小心看到他的工牌,發現他好像我之前在boss直聘上看到發不過崗位的一個哥哥。好像還是什麼前端大經理之類的。

  1. 簡單的自我介紹,自然重點還是技術棧和實習經歷。

  2. 問了一下為什麼重第一家實習公司辭職,貌似他覺得那家公司還不錯。

  3. HTTP協議瞭解嗎?不敢回答特別直接,把自己瞭解的請求頭/請求方式/快取機制講了一下。

  4. 資料結構和演算法瞭解嘛?(學過都忘了)連結串列和陣列的區別。

  5. 使用過較多的技術棧(都是淺薄的學習),react有什麼好處。講了一下虛擬DOM,diff演算法,key的重要性。

  6. 陣列去重(原生)。如果陣列裡面有物件怎麼去重。(最後轉化為判斷兩個物件是否相等)。

  7. 問了event loop/ES6都用過什麼。(悄悄說之前問過了)

  8. 未來的職業規劃,以及想問他的問題。

相關文章