前端面試總結及建議
最近,由於專案組剛成立不久,團隊處於天地初開的混沌狀態,人員配置不齊,急需一大股新鮮血液融入,為此,開啟了一段時間與求職面試者的博弈之路!
如今的IT大環境,似乎每個公司一年四季都處於招人狀態,而同時又有一大批無論是離職還是在職人員期許找一個環境待遇更佳的公司入職;如此的供需關係不應該很和諧嗎,為何在當下看來如此的矛盾呢?經過這些天和麵試者交流之後,在心中漸漸還是有了些許答案;在此,我主要就自己所能看到一些問題做下總結,以及給更多的WEB前端面試者一些建議(很感謝面試一起交流過,還有給我反饋意見的同行)。
(1)現場面試和電話面試
這裡建議有條件做現場面試的,一定最好去現場面試,這樣最能看到一個公司的環境以及同事之間的氛圍,畢竟一旦決定去上班,這些都是息息相關的;
再者,電話面試由於面試官和求職者只能語音,相對來說,比現場要更加放鬆一點,求職者也不會那麼緊張,不過該問的都會問,和現場比,電話面試可能比較好的是,因為看不見,面試者可以邊找答案邊回答問題(這個我遇到過幾次,每次問題都會隔一小會兒才回答 -_-!)。
(2)HTML、CSS相關問題
這部分是每個前端開發人員必須掌握的基礎知識,基本上在這裡的問題都答不上來的話,在面試官心中基本會減很多分;
這當中,我認為前端開發人員必須要掌握以下問題,也是面試官會經常問到的問題:
1、HTML中哪些是塊元素、哪些是行內元素、還有空元素能舉例嗎
2、HTML5有哪些新特性
這裡能說的有很多,比如語義化標籤、增強型表單、Canvas、本地儲存、websocket、Web Worker、拖放API等等;
這裡可以延伸很多問題,比如讓你說出常用的語義化標籤、表單元件,或者說canvas與SVG的區別;
我比較喜歡問localstorage、sessionstorage與cookie之間的區別,這裡就能考察出是否是濫用localstorage等一些問題啦;
3、css盒模型有哪些及區別content-box,border-box
4、CSS3的新特性,這裡可能會很多
5、對響應式佈局的理解
6、CSS的選擇器
7、對浮動的理解,清除浮動的幾種方式
8、哪幾種方式可以實現DIV的水平垂直居中,這裡會分知道高度和不知道高度的情況
9、可能深入一些的話,會問到瀏覽器的渲染引擎是怎麼解析渲染我們的HTML文件以及CSS的
HTML、CSS是前端基礎,這裡所涉及的問題,可能都會在面試中遇得到,而且是必須要能回答的問題,所以如果以上問題沒搞明白的話,可能就需要花點時間惡補一下了;
(3)Javascript、ES6相關問題
1、面向物件的特性(這個無論是java還是js都有可能會被問到類似問題)
2、JS的資料型別,String、Number、Boolean、Array、Object、Null、Undefined
3、JS的作用域鏈的理解
4、對閉包的理解,這個可能是面試必問問題
5、js陣列的常用方法,陣列是js常用的資料型別,所以這個問題會被經常問到,但是可能會延伸很多問題;
比如答到pop、push,我會在上面追問,用pop、push、shift、unshift這四個方法當中選出兩個方法實現一個佇列或者一個棧(感興趣可以思考下);比如答到map、reduce等方法,可能我會繼續問在什麼情況下使用,怎麼使用等等;
6、JS繼承的實現方式、這裡會有很多種實現方式
7、對原型、原型鏈的理解,問過很多人,都答的很模糊或者答不上來
8、js中的call、apply的使用
9、對js中this關鍵字的理解
10、ES6的新特性,這裡肯定會延伸很多問題,比如使用let,會拿來跟var作比較,甚至現場給出一段程式,讓說出輸出答案;
或者使用過promise,會接著問promise.all以及promise.race等等;async/await的理解;箭頭函式的使用等;
11、使用過typescript沒有,typescript的優缺點
當然可能還會有很多其它問題,這裡也只是拋磚引玉,蠻重要的一點就是,對js應該要看重,而且是很重要,很多開發者只會使用jquery,對原生js很陌生,這就很可怕啦。
(4)前端框架問題