一直挺想總結一些關於校招面試的經驗,最近有挺多人問,也恰逢有閑心,便決定開篇博亂扯一通,個人能力並沒有特別突出的地方,純屬個人經驗,看看就好, 有不同觀點歡迎指出。
筆試:只參加過阿里的線上筆試,美團是霸面,愛奇藝是實習轉正,所以並沒有什么可以借鑒的地方,所以筆試這一塊兒並沒有太多經驗,后期跟很多已經入職BAT的人交流,都會吐槽筆試只是純唬人的,過不過有時候看緣分看運氣,而筆試的建議是面試哪個公司可以去刷該公司前兩年的校招或實習筆試題,本人在阿里線上筆試時剛好遇到了去年的同一套題目(然后還是很難)。
面試:這里更多總結技術方面可能被問到的問題,關於穿着,說話建議用最舒適的狀態、面貌迎接就好。
個人認為面試基本上是從前端基礎+計算機基礎+技能延伸這幾個方面來提問的。
前端基礎個人認為需要提到下面這些知識:
HTML、 CSS、JS 、 HTML5 、CSS3、 瀏覽器相關、http(https)、session、cookie、ajax、jsonp等
具體的可以個人去延伸,比如W3C標准,之前和一個妹子聊天,妹子一直以為W3C的來源是W3CSchool,也是笑哭了,很多公司的Job Description上也會描述熟悉W3C規范或者是對Web標准有一定的理解,所以像這樣常問的問題一定要准備好自己的回答。其他的基於這些可以看看CSS的基本功:布局、盒子模型、選擇器優先級及使用等,JavaScript: 數據類型、面向對象、String Array的操作、繼承、正則、閉包、插件、作用域、跨域、原型鏈、模塊化、自定義事件、內存泄漏、事件機制、異步裝載回調等。其他比如:前端的安全性、如何優化、重構、響應式、移動端、如何編寫可維護的代碼等。(此處更多借鑒https://github.com/hawx1993/Front-end-Interview-questions的整理)
這里列一些我在面試時最常問到的,都是老生常談的問題:
- 什么是閉包?
- JS如何實現類,繼承?
- 什么是冒泡和捕獲?
- JS有哪些數據類型?
- Null和Undefined的區別?
- 判斷時if是false的值?
- isNaN()的作用?
- JS對象中的Array對象和String對象的各種方法
- this關鍵字在不同環境下的指向
- JS的作用域
- setTimeout和setInterval
- 了解CSS3或HTML5嗎,都用過哪些
計算機基礎主要是計算機網絡、算法、數據結構方面的知識,這一塊兒是我最薄弱的,而運氣好的是面試官問的也較少,更多的是詢問排序查找相關的一些,經驗不足就不多說。
技能延伸:
在前面兩者技術的基礎上對技能的延伸能增加獲得offer的機會,比如了解模板引擎、熟悉比較火的前端框架或前端技術(JQuery、Bootstrap、Zepto、Node,Angular.JS),並且研究過源碼、對svn或git等版本控制軟件的操作、 長期更新博客、 在github上有所貢獻等,這些都是絕對的加分點,這些並不是說都要做,如果能選中其中一兩項有所成果應該是能加分的。
因為面試已經隔得太久,最近也比較懶,能想起的大概就這么多,有想到的再上來更新吧。
