字節跳動前端校招一二三面+hr面

NO IMAGE

tip: 一二三面連著面的,中間有10分鐘休息時間,面試官都很和善的,不會給太大的壓力,不過字節的每一個問題都會問的很深,很深。。。感覺到了跟大佬的差距O(∩_∩)O😄

一面 (視頻面 1小時35分鐘) 20年3月1日

自我介紹

  • vue和react有什麼區別,更喜歡用哪個,為什麼

  • react hook熟悉嗎,解決了什麼問題,用react hook寫一個用戶鑑權的組件,所有其他組件都要經過它驗證(auth是一個promise)

  • 為什麼請求放在useEffect裡,放在外面和放裡面有什麼區別?在useEffect裡想使用async/await怎麼用

  • 談了談useLayoutEffect和useEffect具體執行時機

  • 算法,一個樹結構,有id和一個子節點數組,要求在所有子節點上增加一個屬性為父節點的parentId

  • async/await和promise性能差異, 我提到了堆棧追蹤,在本人發表的其他文章裡有寫到

  • react寫一個時間選擇組件,先設計要傳什麼樣的props接口,說明原因,外部組件如何使用(其實就是考封裝組件庫), 如果是手機端的,無線滾動的效果具體如何實現

  • CommonJS和ES6模塊化有什麼區別,設計一個方法,讓CommonJS導出的模塊也能改變其內部變量

  • webpack treeShaking原理,是靠什麼才能實現(ES6模塊的靜態導出)

  • webpack的構建原理,loader和plugin的區別

  • 講一下js的隱式轉換

  • JSONP和ajax有什麼區別,手寫一個JSONP(promise版的),window上掛在的函數如何避免重名

  • 算法,實現一個螺旋矩陣

其他的零零散散的想不起來了

二面 (視頻面 1小時) 20年3月1日

  • 網絡安全,XSS、CSRF、SSRF的原理,黑客是如何利用這些漏洞的

  • XSS如何防禦,交給前端做還是交給後端做,如何做

  • CSRF如何防禦,同源策略解決了什麼問題

  • 前端性能優化是怎麼做的,各方面考慮(我談了從網絡層面的,瀏覽器渲染層面的還有css、js執行,框架層面的,越詳細越好)

  • http緩存和CDN原理講一下

  • 老生常談的問題,用戶輸入url到頁面展示經歷了哪些步驟(越詳細越好,這個問題能講很久)

  • http和https的區別,https有什麼好處,https握手過程,https是如何做到“安全”的

  • http2瞭解過嗎,http2和http1的區別和好處,http2的頭部壓縮的原理

  • 鼠標滾動的時候,會觸發很多次事件,如何解決的? (我說的防抖和節流) 具體用的防抖還是節流,我答節流

  • 能實現一個節流函數嗎? (很快寫完了 定時器版) 面試官改進一下要求滾動第一次就觸發,於是改成時間戳版。 再改進一下,最後一次的延遲也要觸發,於是改成了時間戳+定時器版,完美解決

  • 一個場景,鼠標移動到超鏈接上,有氣泡彈出,內容為去後端請求的接口內容(頁面有很多個超鏈接,內容都不一樣)

  • AJAX的原理,如何實現(手寫), http狀態碼都有哪些,代表什麼意思

其他的零零散散也想不起來了

三面 (視頻面 30分鐘) 20年3月1日

二面結束後三面面試官在開會,hr中途進來告訴我前兩面都已經通過了(竊喜),等了50分鐘,三面面試官來了(估計是很忙的事情,還能來面我真的很感謝)

  • 談談你對前端的理解

  • 平時是如何學習的

  • 在京東實習期間,遇到的最難的問題是什麼?參加實習和沒有參加實習給你最大的感觸是什麼?

  • 說一個近期遇到的難題,並分析具體解題思路,給你帶來的思考與收穫,從代碼、原理來解釋

  • 能接受的工作時間

三面沒有考算法或者手寫代碼,主要就是談解決問題的思路與個人規劃(感覺有點像hr面了,但是不一樣的是,講思路要涉及源碼的一些知識)

三面結束後面試官告訴我等hr聯繫(內心超級興奮,感覺穩了一大截)

hr面 20年3月5日

hr面就是談一些學習方法,之前的實習情況等等,大多都是非技術性的

三面結束以後等hr聯繫,等了很多天都沒有等到,3月4日的時候已經心灰意冷,開始準備其他公司的校招了,沒想到第二天hr聯繫我了,超興奮

hr小姐姐告知我具體結果會在接下來幾天出來,等待ing


個人感覺字節跳動的每個問題的深度要比本人面試的其他幾家公司要深,每個問題都會延伸很多,偶爾會出現被問的啞口無言的情況,尷尬😅

20年3月9日 拿到offer啦~~~

相關文章

三個很不錯的Vue資料

【前端詞典】學習Vue源碼的必要知識儲備

【前端詞典】如何向老闆解釋反向代理

【前端詞典】從源碼解讀Vuex注入Vue生命週期的過程