記一次涼涼的小米前端面試
畢業一年的跨專業萌新,在拉勾上投了武漢小米的簡歷,不出兩天,簡歷被 HR 姐姐標為 「不合適」,心想自己這點履歷和經驗小米是看不上了。又過兩天,大概晚上八九點鐘,HR 姐姐突然打電話說邀請面試。也是有點奇怪。
從家到小米有兩個小時車程,做公交車二層晃得竟然有點想吐了。心想做程序員一年,沒學到啥高深的東西身體卻不知不覺間變得這麼差了;同時對此次面試也沒抱太大期望,因為自身實力和小米的招聘要求還是差了一個檔次。進入小米正門,左手邊是小米信息部,右手邊是 wps。想起來前不久在一個招聘群裡面認識的 wps 的孝感老鄉就在隔壁上班,也是一種緣分哈哈。
筆試
面試前要先做一份筆試題,題目大概是:
1、爬蟲引擎是怎樣抓取頁面的2、瀏覽器渲染頁面的過程
用戶輸入 URL 地址
瀏覽器解析 URL 解析出主機名
瀏覽器將主機名轉換成伺服器 ip 地址(瀏覽器先查找本地 DNS 緩存列表 沒有的話 再向瀏覽器默認的 DNS 伺服器發送查詢請求 同時緩存)
瀏覽器將埠號從 URL 中解析出來
瀏覽器建立一條與目標 Web 伺服器的 TCP 連接(三次握手)
瀏覽器向伺服器發送一條 HTTP 請求報文
伺服器向瀏覽器返回一條 HTTP 響應報文
關閉連接 瀏覽器解析文檔
網上找的標準答案,自己答得也是這麼個意思,但是沒這詳細。
3、非同步編程的四種方法
看到這題瞬間感覺阮老師簡直就是中國前端界的教父級人物啊,面試官的理想答案應該是阮老師這篇文章:Javascript 非同步編程的 4 種方法。自己特地看過,也總結在我的面試題總結裡面了:前端面試偏門題總結(https://www.bougieblog.cn/article/Qk9VMTlHSUU.html)。但是記性太差還是答偏了,心裡恨啊。
4、解釋同步非同步、阻塞非阻塞、並行並發之間的區別
這裡補充一下並行和並發:並行是指運算中的兩件或更多件事情在同一時刻發生。實事求是地說,這種情況只會在系統 CPU 擁有兩個獨立核心時發生,這樣在任何時刻才會有不同的電脈衝信號發出。並發意味著至少兩件事務在同一時間段發生。但注意,這裡的事務是(高級的)任務,而不是(低級的)操作。所以,請分清並發和並行。
5、js 實現數值千分位
頭條筆試碰到過了:
6、多語言網站建設應注意哪些事項?
一開始以為多語言是 、 、 啥的,後面面試官說是各個國家語言。
7、React 非父子、兄弟組件傳值
狀態管理:Redux、Mobx 等等。
8、"123456789876543212345678987654321..." 的第 n 位是什麼?
時間有點緊不小心把 寫成 了,尷尬,怪自己不細心吧。
時限是 20 分鐘,還有兩三題記不清了。
面試
面試官很親切,說話很流暢並且肯定,感覺是個知識體系非常齊全的大牛。以下題目順序並不是面試官問的順序:
1、瀏覽器打開一個頁面前端緩存了哪些東西?
我:後端通過設置響應頭 設置資源過期時間,用於緩存一些靜態資源
面試官:還有呢
我:DNS 緩存
面試官:後端緩存了什麼
我:緩存了 session
面試官:還有呢
我:... 答不上來了
2、說一下 vue 的生命周期
一年的 Vue 不是白用的,順利從 到 過了一遍。
3、你的博客用的是 Koa,Express 用過嗎?
我:用過,我的個人博客本來用的是 Express,後面改成 Koa 了
面試官:為什麼要改?Express 不好用嗎?
我:Koa 的路由用 async 和 await 處理,不會陷入回調地獄
面試官:Express 的路由也可以封裝成 asyncawait,自己試過沒有?
我:沒有。。。
4、你的博客用的什麼伺服器?
我:用的 Node 伺服器,pm2 做進程守護的
面試官:代碼直接放上去運行的還是編譯後運行的
我:(一臉懵比,腳本語言還能編譯???)直接運行的
面試官:伺服器是什麼系統的?
我:windows sever...(感覺面試官笑了)
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 上班、加班沒有加班費能不能接收等等。心想小米在雷總的帶領下還真是拼啊。
面試聊了一個小時,很多問題答爛了,今年應該是和小米無緣了。也明顯看到了自身實力的不足。很感謝面試官給我這次面試機會。
補充一個 Tips,面試時看到武漢小米開發人員操作系統清一色的是 Ubuntu,想去面試的同學最好準備一下。
作者:AIBBSHINBAJI
https://segmentfault.com/a/1190000015716464
---- 廣告----
給大家推薦個活躍的開發者社區:掘金是面向程序員的的技術社區,從大廠技術分享到前端開發最佳實踐,掃二維碼下載掘金APP,來掘金你不會錯過任何一個技術乾貨。


※理解模板引擎
※價值3980元的web全棧視頻,3萬人都看過,你想免費領取嗎?
TAG:JavaScript |