記一次涼涼的小米前端面試

來源:互聯網
上載者:User

標籤:com   tps   身體   mis   等等   老師   武漢   進程守護   大牛   

推廣一下個人網站:Bougie‘s Blog

畢業一年的跨專業萌新,在拉勾上投了武漢小米的簡曆,不出兩天,簡曆被HR姐姐標為“不合適”,心想自己這點履曆和經驗小米是看不上了。又過兩天,大概晚上八九點鐘,HR姐姐突然打電話說邀請面試。也是有點奇怪。

從家到小米有兩個小時車程,做公交車二層晃得竟然有點想吐了。心想做程式員一年,沒學到啥高深的東西身體卻不知不覺間變得這麼差了;同時對此次面試也沒抱太大期望,因為自身實力和小米的招聘要求還是差了一個檔次。進入小米正門,左手邊是小米資訊部,右手邊是wps。想起來前不久在一個招聘群裡面認識的wps的孝感老鄉就在隔壁上班,也是一種緣分哈哈。

筆試

面試前要先做一份筆試題,題目大概是:

  1. 爬蟲引擎是怎樣抓取頁面的

  2. 瀏覽器渲染頁面的過程
    1. 使用者輸入URL地址
    2. 瀏覽器解析URL解析出主機名稱
    3. 瀏覽器將主機名稱轉換成伺服器ip地址(瀏覽器先尋找本地DNS緩衝列表 沒有的話 再向瀏覽器預設的DNS伺服器發送查詢請求 同時緩衝)
    4. 瀏覽器將連接埠號碼從URL中解析出來
    5. 瀏覽器建立一條與目標Web伺服器的TCP串連(三向交握)
    6. 瀏覽器向伺服器發送一條HTTP請求報文
    7. 伺服器向瀏覽器返回一條HTTP響應報文
    8. 關閉串連 瀏覽器解析文檔

    網上找的標準答案,自己答得也是這麼個意思,但是沒這詳細。

  3. 非同步編程的四種方法
    看到這題瞬間感覺阮老師簡直就是中國前端界的教父級人物啊,面試官的理想答案應該是阮老師這篇文章:Javascript非同步編程的4種方法。自己特地看過,也總結在我的面試題總結裡面了:前端面試偏門題總結。但是記性太差還是答偏了,心裡恨啊。

  4. 解釋同步\非同步、阻塞\非阻塞、並行\並發之間的區別
    這裡補充一下並行和並發:並行是指運算中的兩件或更多件事情在同一時刻發生。實事求是地說,這種情況只會在系統CPU擁有兩個獨立核心時發生,這樣在任何時刻才會有不同的電脈衝訊號發出。並發意味著至少兩件事務在同一時間段發生。但注意,這裡的事務是(進階的)任務,而不是(低級的)操作。所以,請分清並發和並行。

  5. js實現數值千分位
    頭條筆試碰到過了:number.toLocaleString()

  6. 多語言網站建設應注意哪些事項
    一開始以為多語言是pythonjavaphp啥的,後面面試官說是各個國家語言。

  7. React非父子、兄弟組件傳值
    狀態管理:Redux、Mobx等等

  8. "123456789876543212345678987654321..."的第n位是什麼
    javascript function getNum(n) { let num = 1, flag = true for(let i = 0; i <= n; i++) { if(num === 1) flag = true if(num === 9) flag = false flag ? num++ : num-- } return num }
    時間有點緊不小心把i <= n寫成i < n了,尷尬,怪自己不細心吧。

時限是20分鐘,還有兩三題記不清了。

面試

面試官很親切,說話很流暢並且肯定,感覺是個知識體系非常齊全的大牛。以下題目順序並不是面試官問的順序:

  1. 瀏覽器開啟一個頁面前端緩衝了哪些東西?
    我:後端通過設定回應標頭Cache Control設定資源到期時間,用於緩衝一些靜態資源
    面試官:還有呢
    我:DNS緩衝
    面試官:後端緩衝了什麼
    我:緩衝了session
    面試官:還有呢
    我:...答不上來了

  2. 說一下vue的生命週期
    一年的Vue不是白用的,順利從beforeCreatedestroyed過了一遍

  3. 你的部落格用的是Koa,Express用過嗎?
    我:用過,我的個人部落格本來用的是Express,後面改成Koa了
    面試官:為什麼要改?Express不好用嗎?
    我:Koa的路由用async和await處理,不會陷入回調地獄
    面試官:Express的路由也可以封裝成async\await,自己試過沒有?
    我:沒有。。。

  4. 你的部落格用的什麼伺服器?
    我:用的Node伺服器,pm2做進程守護的
    面試官:代碼直接放上去啟動並執行還是編譯後啟動並執行
    我:(一臉懵比,指令碼語言還能編譯???)直接啟動並執行
    面試官:伺服器是什麼系統的?
    我:windows sever...(感覺面試官笑了)

    後來查了一下,segmentFault的大佬們也說Node JS不用編譯:運行在服務端的Node.js代碼需要編譯嗎?,好想追問一下面試官到底怎麼編譯啊。

  5. 有沒有自己實現過Promise?
    看了不少文章,自己也寫過了,但問到細節還是答爛了。

  6. 有沒有寫過Webpack外掛程式?
    我:沒有...

  7. new 一個對象後發生了什嗎?

  8. 寫過響應式網站嗎?
    我的個人部落格就是響應式的,主要說了媒體查詢和rem控制字型大小。

  9. 說一下原型和原型鏈

  10. 有沒有自己寫過比較複雜的正則?

  11. 有沒有封裝過axios?

  12. 前後分離的系統,一個請求出錯了,如何中斷其它請求?

  13. 如何在axios中添加登陸驗證?

  14. rollup瞭解過沒?

  15. 為什麼rollup打包贅餘代碼比較少?

  16. 有沒有結合原生封裝過RN組件?

  17. 為什麼用高德地圖不用百度地圖?

  18. 怎樣在Android Studio中對React Native的js代碼進行斷點調試?

......

還有n多問題記不太清了...

然後面試官問了一些其他的東西,對小米有什麼看法?995上班、加班沒有加班費能不能接收等等。心想小米在雷總的帶領下還真是拼啊。

面試聊了一個小時,很多問題答爛了,今年應該是和小米無緣了。也明顯看到了自身實力的不足。很感謝面試官給我這次面試機會。

記一次涼涼的小米前端面試

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.