每一年的春招是各企業需求人才的黃金時期,很多的前端大牛或者前端新手在面試時候不知道怎麼來回答面試官的問題,下面來看下我轉載的這篇文章吧,但願對從事前端工做的你有所幫助。css
每到年後,即是換工做的高峯期,不少同窗會開始面試馬拉松。固然也會有一批人選擇年前面試年後入職。今天,我決定聊聊關於面試的話題,以及前端工程師的面試套路. (ps:這篇文章摘自 醫小生與程序猿 的微信訂閱號)。html
做爲一個標準的理科生,我也曾大大咧咧,不修邊幅。但這畢竟是找工做,尤爲是前端工程師,對於細節必定不能忽視。雖然說面試以技術爲主,但簡歷是敲門磚,一個潦草隨意的簡歷一定是會減分的。簡歷都作成這樣,作網頁能好到哪去。前端
具體來講,有那麼一些原則。首先,錯別字是確定不能有的,很少解釋。除此以外,字體、字號,以及邊界對齊,都要作到總體一致,視覺上溫馨。有我的博客、我的做品的連接,最好把連接加上,這樣別人一點就能看而不用複製到瀏覽器。有些同窗會把簡歷作成圖片的格式,致使連複製連接都不能,這是典型的不爲他人考慮。有些同窗在mac上用pages作簡歷,完了就把.pages文件發過來,你怎能肯定對方hr就是在用mac辦公呢?node
這些細節重要嗎?也沒有多重要,但卻能反映出你的我的習慣,以及與人交際的態度。換位思考一下,你就知道爲何這些細節不能忽視。想象一下,你跟一個同事要他的電話號碼,他給你發了一段微信語音。 jquery
做爲前端工程師的核心技能,js知識的考察是面試的重要環節。ios
通常來說,若是面試者是初級工程師,我會先從基礎問起。經典問題如js的原型繼承、閉包、類型轉化,經常使用函數的一些用法,好比不少同窗都記不清數組的splice方法的三個參數。css3
對於只用過jquery的同窗(大部分初級同窗是這樣),有幾個問題是必問的,好比jq監聽事件的幾種方式及其異同點,在此基礎上解釋事件代理、事件冒泡機制。jq的一些方法的實現原理,好比$.inArray。jq插件的寫法,解釋$.fn是什麼東西。web
若是以上的回答比較滿意,就開始問mvc、mvvm、模塊化開發、ES6等這些脫離了「刀耕火種」年代的新東西。面試
若是對於新知識體系的掌握都不錯,我還會問一些常見的性能優化,以及這些框架在實戰項目中的優缺點。畢竟入門一個框架即可以泛泛而談,但只有深刻使用並解決一些複雜問題,纔能有本身的看法。算法
而後是前端工程化方面的探討。再往上就是項目的架構討論,這種通常是問面試者目前工做中的架構,有哪些侷限和可優化的地方。主要是想了解他是否有本身的思考,而不是在現有的框架之下停滯不前。
若是面試者是2~3年有經驗的工程師,我會直接問mvvm這一層。若是發現他是那種工做3年卻只有1年經驗的類型,則往降低,開始問jquery方面的知識,不行就再往降低問基礎。事實上我遇到的這種類型還真很多。
css是最容易被忽視的一塊,也是最能挖掘出知識的一部分。
對於初級前端,我會先問應用。好比說左右兩欄自適應如何實現,底部自適應如何實現,一些佈局技巧如margin負值、各類狀況的居中、盒模型的計算等等。
再往上就是原理性的一些知識,好比解釋BFC的概念及常見場景。IE6兼容的問題我記得是好久沒問過了,畢竟過期了。css與渲染性能也是須要知道的,我會問重繪和迴流是怎麼回事,如何在css佈局階段就減小性能浪費。
css 新知識相對少一些,基本就是css3和css預編譯了。這塊的話其實也沒什麼深度,大致上掌握了就能過關了。若是必定要看面試者的功力,那就是探討sass/less框架下的整站css架構話題。
前端頁面在移動端的舞臺愈來愈大了,儘管如此,仍是有些同窗沒有這塊的經驗。前端的知識斷層就是這麼嚴重。行走在移動端的前端仍是有不少特有問題的,因此必須得考察。
最基本的就是佈局問題,不一樣屏幕下的自適應。首先會問viewport的概念,解釋清楚它是什麼,默認值是多少,移動端如何經過控制viewport來實現自適應。
除此以外就是各類自適應的方法,百分比佈局的問題啦,rem佈局的問題啦,flex佈局,以及css3的calc知道不知道。
因爲移動端開發是一個經驗密集型差事,不少問題的解決就是靠踩坑、靠經驗。因此不少零碎的問題會隨機來問,好比點擊事件300毫秒延遲、絕對定位的兼容、ios下iframe兼容問題、scroll事件的性能優化、各類卡頓問題的解決方案等等。
一說算法,可能不少同窗都頭疼。甚至也有面試者在我提到這塊時,直接就說你別問了,我算法不行。
其實算法通常是不問的,其餘公司也應該也是這個狀況,我知道美團除外。我問算法的狀況通常是對方是軟件工程或者是計算機專業畢業。畢竟這是基礎課程嘛。
不會問很難的,由於算法這塊我本身也不行,只能簡單問一問探個路。說說經常使用的幾種排序算法,找最大數、找中數,時間複雜度怎麼計算的,差很少就這些了。
對於軟件/計算機專業,操做系統、編譯原理、計算機網絡這些應該是基本課程,我有時也會問一問,可是我知道這對前端工程師來講屬於「邊緣知識」了,不起決定做用,算是附加題吧。
學習能力是很重要的一個指標,對於新手尤爲重視。判斷學習能力實際上是很難的,一般有那麼一些角度能夠觀察到。
寫博客。我未畢業的時候就開始寫博客,並堅持到如今。我也堅持認爲,自學到知識並能寫文章表達出來,能夠展現出一我的的學習能力。因此若是一份簡歷中有博客連接,我一般會仔細去看。
另一個考察學習能力的方式就是看他的「折騰能力」。好比,就算工做中不用angular,你是否本身研究過它。是否本身研究過nodejs,乃至於Android、iOS開發,這都是有可能的。
再有就是問問他平時看的書、網站、APP等,若是一我的下班後就不關注程序開發,我不認爲他學習能力強。由於學習自己就是克服惰性的一個過程。
在面試評估表上,這也是佔一欄的。關於溝通表達能力的評估,會貫穿面試的整個過程。主要踩分點就是,你要知道面試官具體問的是什麼,不要答非所問,也不要硬扭轉話題,真實天然的表達便可。有一些「面試技巧」會教你說把談論的話題往你擅長的方向引,在我看來這是愚昧的,由於面試官並不傻。
曾有一個面試者硬要給我背寫出冒泡算法,儘管我已經說了沒必要寫了,他仍是不停。難道我會不知道這是他提早背好的嗎?有一些比較「聰明」的會隱祕些,但難逃法眼。你要相信,面試或許會有運氣成分,但絕無空子可鑽。
誠實很重要。另一個我比較看重的就是,人品。簡單來講,你是不是一個顧及他人感覺的人。有些人在面試的時候話比面試官都多,整個過程都是他在給面試官講道理。就算你年齡比面試官大,工做經驗很高,但此時此刻,你是面試者。
懷有謙卑之心的人是我一直喜歡的,然而要看透這一點並不是易事。我通常會問面試者一個主觀問題:你如何向一個徹底不懂編程的局外人解釋前端工程師這個職業。這個問題看似簡單,但能考察他對前端的理解,他的表達能力,最難的是他要站在一個徹底不懂編程的人的立場來解釋清楚。你們能夠試着回答一下。
在這裏鄭重的說一下: 機會只會垂青有準備的人!加油吧2017!
此文來自於:https://blog.csdn.net/u012118993/article/details/60584551