前言
秋招宣告結束,面試了接近20家公司,有幸拿到offer,感謝這段時間一塊兒找工做面試的朋友和陪伴個人人。這是一段難忘的經歷,相信不亞於當年的高考吧,也許如今想起來高考不算什麼,也許只有經歷過秋招的人才懂得找工做的艱辛,offer的來之不易。秋招值得回憶,故借寫此篇文章來整理一些資料和心得。前端
知識點
數據結構和算法
數據結構和算法是不用多說了,基本上好一點的公司都會問。git
- 堆棧、二叉樹、平衡二叉樹、鏈表
- 圖的暫時還沒遇到過,可能問的比較少吧
- 哈希表
- 各類基本排序算法(準備過程儘可能能手寫出來,尤爲注意快速排序、歸併排序、堆排序),它們的最優、最差、平均複雜度
計算機網絡
前端方面重點準備TCP/IP協議,HTTP協議,HTTPSes6
- 前端緩存:強緩存,協商緩存,各類字段的理解和區別
- HTTP的各類請求頭含義和做用。
- HTTP各類版本的優缺點,應用場景,及對應的優化。如針對http1.0的優化
- TCP三次握手,四次揮手,最好能記住每一次握手和揮手包含哪些字段,爲何要第三次握手和四次揮手。
- 一道常考的題目
HTML
- 瞭解HTML語義化
- HTML各類新特性
- HTML4.0和HTML5.0的區別,如何解決HTML5的兼容性問題
CSS
CSS這裏主要會問佈局相關,瞭解各類CSS3新特性,CSS3動畫等github
JavaScript
這部分的內容比較多,也是本身準備得比較多的部分,不具體羅列,直接上本身準備過的資料面試
前端安全
錯誤監控:這裏有總結過:ajax
- 即時運行錯誤:(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呢?