前端秋招面試總結

瘋掉了吧發表於2019-02-16

前言

秋招宣告結束,面試了接近20家公司,有幸拿到offer,感謝這段時間一起找工作面試的朋友和陪伴我的人。這是一段難忘的經歷,相信不亞於當年的高考吧,也許現在想起來高考不算什麼,也許只有經歷過秋招的人才懂得找工作的艱辛,offer的來之不易。秋招值得回憶,故借寫此篇文章來整理一些資料和心得。

知識點

資料結構和演算法

資料結構和演算法是不用多說了,基本上好一點的公司都會問。

  • 堆疊、二叉樹、平衡二叉樹、連結串列
  • 圖的暫時還沒遇到過,可能問的比較少吧
  • 雜湊表
  • 各種基本排序演算法(準備過程儘量能手寫出來,尤其注意快速排序、歸併排序、堆排序),它們的最優、最差、平均複雜度

計算機網路

前端方面重點準備TCP/IP協議,HTTP協議,HTTPS

  • 前端快取:強快取,協商快取,各種欄位的理解和區別
  • HTTP的各種請求頭含義和作用。
  • HTTP各種版本的優缺點,應用場景,及對應的優化。如針對http1.0的優化
  • TCP三次握手,四次揮手,最好能記住每一次握手和揮手包含哪些欄位,為什麼要第三次握手和四次揮手。
  • 一道常考的題目

HTML

  • 瞭解HTML語義化
  • HTML各種新特性
  • HTML4.0和HTML5.0的區別,如何解決HTML5的相容性問題

CSS

CSS這裡主要會問佈局相關,瞭解各種CSS3新特性,CSS3動畫等

JavaScript

這部分的內容比較多,也是自己準備得比較多的部分,不具體羅列,直接上自己準備過的資料

前端安全

  • XSS攻擊
  • CSRF攻擊
  • 瀏覽器渲染原理、js執行機制這兩部分也要重點準備,相關資料忘了

錯誤監控:這裡有總結過:

  • 即時執行錯誤:(1)使用try…catch捕獲;(2)使用window.onerror方法捕獲;
  • 資源載入錯誤:1)使用object.onerror方法捕獲,為什麼不能用window.onerror呢?因為資源載入錯誤不會冒泡到window物件;2)使用performance.getEntries,使用該方法獲取所有已經載入的資源,跟所有資源對比,看哪些沒有載入成功;3)Error事件捕獲;
  • 跨域js報錯怎麼捕獲?即“Script error”,解決方法1.script標籤新增crossorigin欄位,2.新增跨域 HTTP 響應頭,Access-Control-Allow-Origin: *
  • 錯誤上報:1.採用ajax技術;2.利用Image物件上報錯誤(面試應該把這個答到)

前端效能優化

  • 這方面是重點,但好像沒有看過特別的文章,“雅虎35條軍規”,能背多少就背多少,理解最好。可以扯上瀏覽器渲染原理。

其他資料

心得體會

前面的都是一部分資料,可能有點亂,但有些也記不住了。很多時候都看論壇和部落格,和麵試之前突擊相關公司的面經。接下來總結一下面試過程中的心得和體會

  • 當面試官問你一個問題時,不要只回答一個問題,而應該儘可能把跟這個問題相關的知識點都說出來,前提是你瞭解的,懂的。比如面試管問你React,你可以把React的相關特性,應用場景和侷限性,和其他框架之間的區別,甚至React全家桶都可以說。再比如面試官問你前端快取,那你應該把你知道的前端快取相關的都說出來,比如強快取,協商快取,快取頭,no-store和no-cache區別等等說出來,也許面試官就不會再繼續問你相關的問題了,這種情況我確實有遇到過。
  • 面試過程一定要自信,在前期面試的時候,由於心理有壓力面試不是很自信吃了不少虧,面試官也有提醒過
  • 關於實習和專案,這兩個可以說是重點,一定要提前整理好在實習或專案過程中遇到的難點。在述說過程中一定要展現你發問題,思考問題和解決問題的過程。說話模式簡單總結類似為:在實踐過程中我使用XX工具或者通過XX方法,發現了XX問題,通過xx方法解決了這個問題。然後通過對比說說為什麼用這個方法,例如因為這個方法跟其他方法相比有xx優勢,另外如果用到了庫,那麼也要說說這個庫的實現原理是什麼。總之,要體現你發現問題和解決問題的能力。
  • 整理難點問題,可以寫在一張紙上,在面試前自己想好面試官可能會問你什麼問題,然後查詢相關資料,把答案整理一遍,每次面試完後不斷反思完善自己的答案。一定要提前準備好,不然面試官叫你說遇到的難點,或者直接問問題時可能會懵逼。
  • 務必記住:在準備過程中,多思考應用場景,優缺點,侷限性等。回答問題時能答上這些最好。比如你專案用來mongodb,那面試官很可能就會問你為什麼要用mongodb,它的優缺點是什麼,跟MySQL相比有什麼優勢。
  • 多思考更好的解決方案,比如React使用redux狀態管理,那麼如果不允許使用redux,或者感覺redux太麻煩了,你會有什麼方案替代它?再比如Vuex呢?

相關文章