簡評:任何面試就兩步,大量的準備(戰前分析),面試的表現(做戰發揮)。不少人以爲面試難,多是第一步,準備還不夠充分。
前端面試很難,這是事實,不但須要牢固掌握計算機科學基礎知識,並且還須要瞭解 Web 性能,構建系統和 CSS 佈局引擎等內容。因此特此寫一個指引性質的文章,來幫助前端開發者更好的應對面試。javascript
★面試前準備css
在你的面試以前,詢問招聘者面試的方式。html
一些面試可能圍繞白板,一些面試可能使用像 CoderPad 這樣的在線文本編輯器。重要的是,預演面試環境,並加以練習。前端
另外,能夠要求面試者提供一些公司關注的方向,或是自習研究一下職位 JD,由於一些公司除了問你前端的具體問題外,可能還會問你傳統計算機科學的問題,如排序算法和搜索等。java
☆前端概念程序員
HTML 和 CSS,Javascript 和 Javascript 設計模式是你在面試期間將要測試的關鍵概念。面試
HTML + CSS算法
HTML 和 CSS 就像前端開發的麪包和黃油。在面試過程當中,你極可能會被問及 HTML 和 CSS 的細微差異。此外,招聘方還可能讓你編寫基於模型的佈局。設計模式
防微杜漸,如下是一些 HTML 和 CSS 的基本概念:promise
除了這些概念,瞭解 CSS 預處理器,如 SASS 或 LESS 及其優勢。也熟悉CSS命名約定像BEM 和 OOCSS。
一些面試官會要求你在 HTML 和 CSS 中從新建立佈局。在 CodePen 上練習。檢查Dribbble,由於它有不少簡單但不錯的設計,將是有趣的從新建立。
最後,做爲前端,咱們習慣於在編輯器中進行更改,而後驗證瀏覽器中的更改。
一般在採訪期間,你沒法享受到這種奢侈。當你準備面試時,嘗試用代碼寫大部分的佈局,而不看結果,直到結束。
JavaScript
若是 HTML 和 CSS 是前端開發的麪包和黃油,那麼 Javascript 就是刀了。公司將花費大量時間測試你的 Javascript 知識。許多問題將圍繞如下概念。
若是你對本身的 Javascript 能力有信心, 那來測試一下你的知識吧。
Design Patterns
Javascript 中的設計模式爲你提供了常見問題的可重複解決方案。這些是一些重要的知道的設計模式。
除了Javascript 設計模式,熟悉 Javascript 框架也是頗有必要的。這不意味着你須要學習一個新架構,你只須要理解面試公司團隊以前使用的架構,以及爲何使用這個架構。另外,若是你正在面試一個像 React Flux 或 Angular 的相關職位,請事先查看框架架構的一些文檔。
☆計算機科學概念
有些公司在僱傭前端以前,會先僱傭軟件工程師。這意味着公司但願你可以有良好的軟件設計原則,可擴展的代碼結構體系和測試等素質。
若是面試公司要求瞭解數據結構和算法,那麼你能夠繼續看,若不要求,能夠跳過此章節。
Data Structures
這是一些基本的數據結構,不要只是閱讀它們,花時間在 Javascript 中實現它們。若是你不熟悉單元測試,請使用像 Mocha 這樣的庫來測試你的數據結構,以便學習。
注意:對於圖形你還要知道如何實現深度優先和廣度優先搜索遍歷。
有些數據結構的實現,你能夠參照 SanFoundry。全部例子都是 Java 的可是在 JS 重構很是簡單。
Sorting
一旦你對數據結構有信心,就能夠進入排序。
在 Javascript 中實現它們,而後記下他們的時間和空間的複雜性。
在檢查數據結構和算法後,使用 Leetcode 和這些問題測試你的知識。
★臨場發揮
上述有不少材料,要學的也不少,畢竟一入前端深似海。找到本身的學習節奏,去征服面試。
另外你要謹記,面試不能完整地衡量程序員的價值!
有些人擅長面試,有些人不擅長。有些人和麪試官很搭,有些人由於是老鄉而更受青睞,因此放輕鬆,作最好的準備,而且在面試中把你所準備的都呈現出來,那就夠了!
原文: Cracking the front-end interview