1. 程式人生 > >阿里、網易、滴滴共十次前端面試碰到的問題

阿里、網易、滴滴共十次前端面試碰到的問題

轉載:https://segmentfault.com/a/1190000009662029

前一段時間一直在不斷地面試,無奈個人技術能力有限、專案經驗缺乏,最終都沒有進入到HR面試環節,全~~掛~~了~~

面試了這麼多,結果不是太好,有點兒受打擊,也促使我近期靜下心來反思自己的問題:哪些技術知識掌握的還不錯,哪些還有待提高,哪些是需要去惡補的。

阿里面試了三個部門,都是在二面掛的,網易和滴滴也是各兩輪技術面試,加一起就是十次面試經歷。在此回憶總結一下,既是給社群朋友的一個參考,反饋社群,更是給自己一個好好的總結。

HTML

  • HTML5新增了哪些內容或API,使用過哪些

  • input和textarea的區別

  • 用一個div模擬textarea的實現

CSS

  • 左右佈局:左邊定寬、右邊自適應,不少於3種方法

  • CSS3用過哪些新特性

  • BFC、IFC

  • 對柵格的理解

  • (水平)居中有哪些實現方式

  • 1畫素邊框問題

JavaScript

  • 圖片懶載入

  • 實現頁面載入進度條

  • 事件委託

  • 實現extend函式

  • 為什麼會有跨域的問題以及解決方式

  • jsonp原理、postMessage原理

  • 實現拖拽功能,比如把5個兄弟節點中的最後一個節點拖拽到節點1和節點2之間

  • 動畫:setTimeout何時執行,requestAnimationFrame的優點

  • 手寫parseInt的實現:要求簡單一些,把字串型的數字轉化為真正的數字即可,但不能使用JS原生的字串轉數字的API,比如Number()

  • 編寫分頁器元件的時候,為了減少服務端查詢次數,點選“下一頁”怎樣能確保還有資料可以載入(請求資料不會為空)?

  • ES6新增了哪些特性,使用過哪些,也有當場看程式碼說輸出結果的

  • JS模組化的實踐

  • require.js的實現原理(如果使用過webpack,進一步會問,兩者打包的異同及優缺點)

  • promise的實現原理,進一步會問async、await是否使用過

  • 實現gulp的功能

  • 使用前端框架(angular/vue/react)帶來哪些好處,相對於使用jQuery

  • vue雙向資料繫結的實現

  • 單頁應用,如何實現其路由功能

效能優化

  • 專案中使用過哪些優化方法

  • 輸入一個URL,Enter之後發生了什麼

  • (承上)頁面的渲染過程

  • 優化中會提到快取的問題,問:靜態資源或者介面等如何做快取優化

  • 頁面DOM節點太多,會出現什麼問題?如何優化?

專案經歷

這些大公司招聘都是高階工程師起步,所以對簡歷上的專案會刨根問底。很多很多問題都是由專案中拓展開的,像優化相關的東西,還有前面提到的require.js、promise、gulp,專案中用到了某項技術,高階工程師的要求是:不僅會用,更要知道其原理。對自己的提醒:專案中用到的技術,不能說完全掌握其原理吧,但大致的實現還是有必要了解一下的。

  • 介紹一下你做的這個專案,進一步細問:整個專案有哪些模組,你主要負責哪些

  • 你在專案中的角色

  • 你在專案中做的最出彩的一個地方

  • 碰到過什麼樣的困難,怎麼解決的

  • (如果你是這個專案的負責人),任務怎麼分配的,有沒有關注過團隊成員的成長問題

  • 前端安全問題:CSRF和XSS

其他

  • 為什麼選擇做前端(我靠,我都快轉前端兩年了,還在問這個問題啊...)

  • 你希望進入一個什麼樣的團隊

  • 你有什麼問題想問我(面試官)的嗎?

前前後後有兩個月時間,暫時只回憶起這麼多了,如果還有其他的,後期我會補上。

webpack其實也是必問的,由於我說還沒使用過webpack,只是瞭解,寫過demo,面試官就沒問太深。如果你的簡歷中有提到webpack,請提前準備好,比如webpack打包原理、如何寫webpack外掛等。

面試阿里雲那個崗位的時候,有要求演算法和資料結構,有能力者多多準備吧。

阿里、網易的面試幾乎都是圍繞專案展開的,所以提醒自己搬磚的時候多想想、多看看,多站在一個高度去看整個專案:用到什麼技術,技術實現原理是什麼,專案框架怎麼搭建的,採取安全措施了嗎...

後記

有幾個崗位感覺就是掛在了專案上。自己做過一個前後端分離專案,但是經過幾次面試,發現這個專案還存在某些問題,比如:整個登入註冊系統是不完善的,關於許可權的處理上甚至是有很大缺陷的;這個專案的node層只是起到構建前端專案(gulp)、渲染index.ejs、代理轉發api介面等作用,但是面試官指出說你這個node也太簡單了,導致我都在懷疑這是個假的前後端分離...還是需要大神帶多見見世面啊,求帶...

雖然五次面試都沒成功,但自己也收穫了很多很多:認識了大牛hb,一個超有文藝氣息的資深前端;多謝fw大大幫我內推阿里,十分感謝您對我的認可;也見到了平時只能在視訊上看到的cjf老師,謝謝您的指點;對高階前端工程師所具備的技能有了更清晰的認識;肯定也增加了很多面試經驗...

再好好提升一下,打算過段時間重新上陣,也祝自己多點好運氣,早日進入心儀的企業,畢竟,當初來杭州的時候就是以網易、阿里為目標的。