年後回來到如今,大大小小的也去面了十幾家公司。騰訊、京東、阿里、頭條、shopee、百度、大豐收、深信服、平安科技等等,目前收到了其中5家的offer。在此分享一下經歷。css
自我介紹
要有套路。如何引導面試官問你擅長的領域就看自我介紹了。學歷專業簡述、項目細說、興趣特長一句帶過。html
react和vue你都使用過,說說它們的區別?
推薦這篇文章前端
vue的源碼看過沒?說說基本的實現?實現雙向綁定的原理?
即便沒有實際地閱讀過源碼,也要找別人分享的博客去了解其中的原理。vue
推薦博文
html5
說說你理解的虛擬dom?diff算法是怎麼作的?
推薦《深度剖析,如何實現一個Virtual Dom算法》react
redux和vuex的區別?
摘取尤大的知乎回答:webpack
Vuex 實際上是一個針對 Vue 特化的 Flux,主要是爲了配合 Vue 自己的響應式機制。固然吸收了一些 Redux 的特色,好比單狀態樹和便於測試和熱重載的 API,可是也選擇性的放棄了一些在 Vue 的場景下並不契合的特性,好比強制的 immutability(在保證了每一次狀態變化都能追蹤的狀況下強制的 immutability 帶來的收益就頗有限了)、爲了同構而設計得較爲繁瑣的 API、必須依賴第三方庫才能相對高效率地得到狀態樹的局部狀態等等(相比之下 Vuex 直接用 Vue 自己的計算屬性就能夠)css3
因此 Vue + Vuex 會更簡潔,也不須要考慮性能問題,代價就是 Vuex 只能和 Vue 配合。Vue + Redux 也不是不能夠,可是 Redux 做爲一個泛用的實現和 Vue 的契合度確定不如 Vuex。git
說出你知道的全部選擇器權重?
important > 內聯 > ID > 類 > 標籤 | 僞類 | 屬性選擇 > 僞對象 > 繼承 > 通配符github
說說你知道的全部僞類元素?(知道多少說多少)
LVHA(LV哈,簡單明瞭)、focus、before、after、checked、disabled、last-child、first-child......不少,就不一一列舉了。
你知道的父子選擇器和兄弟選擇器。
父子 > , 兄弟 +
行內元素和塊級元素有哪些?區別是什麼?
不知道的童鞋前往前方
你理解的盒子模型?
必問,無非就是圍繞css3新屬性 box-sizing 的兩個值 content-box 和 border-box。
html5全部的新特性?以及對應屬性的兼容性(知道多少說多少)
兼容瀏覽器這個問題,知道一些經常使用API的就好,也不可能所有記住。像canvas這個兼容性仍是要知道的。
實現三列布局,左右固定寬度,中間響應式。兼容性儘可能好。
常見的兩列布局、三列布局實現要知道,知道2-3種實現方式爲上策。並且兼容性方面也要知道,好比用了flex的話就兼容IE10+。
BFC的理解。什麼狀況會產生BFC。
必問。什麼狀況下會產生BFC,怎麼處理等等。
你知道的ES6新特性?
這裏有個注意的點是,經常使用的一些API要知道基本的實現。好比你經常使用promise,相關的庫如bluebird是怎麼實現的。
你知道的全部前端安全知識?怎麼預防?怎麼測試?
前端安全XSS、CSRF、SQL注入。什麼場景會產生這些問題。預防和測試手段,測試手段比較少問。
你知道的http狀態碼?
必問。常見的狀態碼和說明必須知道。200、20四、20六、30一、30二、30四、30七、400、40一、40三、40四、500、503
304是怎麼產生的仍是要知道的。
你理解的cookie?跟session有什麼區別?http中設置cookie的頭部字段有哪些?
前兩個問題自行查閱哈,比較簡單。頭部字段的話有Cookie和Set-Cookie
你知道的http頭部?
通用首部字段、請求首部字段、響應首部字段。這個太多了,平時用到的一些熟悉就好。
Date、Upgrade、Connection、Authorization、Accept、Accept-Charset、Host、From、Referer、Location......
建議閱讀圖解HTTP。
緩存相關的頭部?
分爲強緩存、協商緩存去記會簡單點。
推薦博文
你知道的全部排序算法?手寫快排算法。
前端對基礎的數據結構和算法仍是要很是熟悉的。這個也常常會問到。
寫出全部你知道的git命令。
團隊協做方面,版本管理工具。
用ES3實現bind函數。
相似這種API的原理,好比new的過程、Object.create的實現、curry函數的實現也會常常碰到。推薦冴羽的深刻系列
js實現繼承的方式。
原型鏈、js實現繼承等相似基礎的問題都是必考的。這個仍是建議閱讀冴羽的深刻系列,整個系列閱讀下來有一個比較深入的概念。
使用promise模擬一個解決多級回調嵌套問題。
場景解決方案問題。這種方式出現的頻率仍是很高的。相似好比vue在不使用分頁的前提下如何處理海量數據。
平時開發用的工具。
前端經常使用的一些工具,例如抓包wireshark、fiddler,編碼工具vscode、sublime,調試工具瀏覽器控制檯等,webpack、gulp等等。webpack的原理要了解下。
項目開發流程。項目中有什麼比較複雜的難點。怎麼解決的。還有沒優化點。
自由發揮,針對性地突出本身擅長的領域。
平時開發中,有注意設計模式嗎?說說你知道的設計模式。
跪!!!可是被問的機率仍是蠻大的,須要瞭解一些基本的設計模式例如單例、工廠、迭代、裝飾者、代理等等。
還有其餘一些的問題在這裏就不一一列舉了。針對崗位所需的一些技能去發散,這類問題根據崗位要求而定。好比說京東手Q微信業務,對性能方面要求就很高,對CDN相關的技術也要去了解下。同一份簡歷不要海投,針對每個崗位要求,適當的改下關鍵字眼,可以提升面試機會哦,有面試機會就有了一切可能。
主要是想給正在找工做的小夥伴一個全局觀。文章並無詳細地給出每道題的答案,但基本都給出了其餘大神的參考文章啦。
找工做是一個煎熬的過程,有挫折,有打擊,固然少不了收穫。但願每一個求職者都能斬獲合心意的offer!