天天看點

位元組跳動今日頭條前端面經(4輪技術面+hr面)

作者:甘先森

https://juejin.im/post/5e6a14b1f265da572978a1d3

筆者讀大三,前端小白一枚,正在準備春招,人生第一次面試,投了頭條前端,總共經曆了四輪技術面試和一輪hr面,不多說,直接上題:

一面

  1. 自我介紹,然後問了為什麼學習前端
  2. 算法:實作36進制轉換
  3. 簡述https原理,以及與http的差別
  4. 作業系統中程序和線程怎麼通信
  5. node中cluster是怎樣開啟多程序的,并且一個端口可以被多個程序監聽嗎
  6. 實作原生ajax
  7. vue-router源碼
  8. vue原理(手寫代碼,實作資料劫持)
  9. 算法:樹的周遊有幾種方式,實作下層次周遊
  10. 算法:判斷對稱二叉樹
第一次面試,當時比較緊張,面試官很和藹,面試中問到作業系統的程序,當時不記得作業系統,就提到了node多程序,然後面試官就問了cluster是怎樣開啟多程序的,并且一個端口可以被多個程序監聽嗎?答完後面試官就問了後面寫完vue資料劫持的時候,面試官又問了Object.defineProperty除了set get外還有什麼屬性,我回答了configurable enumerable。vue-router主要提到了hashchange事件等,順便跟面試官聊了一下h5的historyAPI。時間總共是50分鐘左右,一面完了後面試官讓我等五分鐘,接下來二面就開始了

           

二面

  1. 介紹一下項目中的難點
  2. let var const 有什麼差別
  3. 你知道哪些http頭部
  4. 怎麼與服務端保持連接配接
  5. http請求跨域問題,你都知道哪些解決跨域的方法
  6. webpack怎麼優化
  7. 你了解哪些請求方法,分别有哪些作用和不同
  8. 你覺得typescript和javascript有什麼差別
  9. typescript你都用過哪些類型
  10. typescript中type和interface的差別
  11. react怎麼優化
  12. 算法題:合并亂序區間
筆者在回答http頭部的時候,順帶跟面試官聊到了浏覽器緩存,回答跨域的時候,面試官又讓我用jsonp實作一下跨域,回答webpack的時候提到了happypack和treeshaking,面試官就順帶問了一下他們的作用,算法題我當時沒有寫出來(主要是因為菜),二面大概40多分鐘結束,面試完後面試官說稍後hr會聯系我,讓我注意保持通信,還沒過一小時,hr打電話約我第三次面試時間,不得不說,位元組的效率真的高

           

三面

  1. 你了解node多程序嗎
  2. node程序中怎麼通信
  3. node可以開啟多線程嗎
  4. 算法題:老師分餅幹,每個孩子隻能得到一塊餅幹,但每個孩子想要的餅幹大小不盡相同。目标是盡量讓更多的孩子滿意。如孩子的要求是 1, 3, 5, 4, 2,餅幹是1, 1,最多能讓1個孩子滿足。如孩子的要求是 10, 9, 8, 7, 6,餅幹是7, 6, 5,最多能讓2個孩子滿足。
  5. 算法題:給定一個正整數數列a, 對于其每個區間, 我們都可以計算一個X值;X值的定義如下: 對于任意區間, 其X值等于區間内最小的那個數乘上區間内所有數和;現在需要你找出數列a的所有區間中, X值最大的那個區間;如數列a為: 3 1 6 4 5 2; 則X值最大的區間為6, 4, 5, X = 4 * (6+4+5) = 60;
三面大概是1小時,面試官比較冷漠,就問你知道不知道,算法思路,然後實作這個算法,面試完感覺涼涼,但是第二天就收到hr到來的電話,約下一輪的面試時間。

           

四面

  1. 算法題:兩個有序連結清單和并成一個有序連結清單
  2. https與http有什麼差別(一面剛好也被問到)
  3. cookie有哪些屬性
  4. cookie,session,localstorage,sessionstorage有什麼差別
  5. 怎麼禁止js通路cookie
  6. position有哪些屬性
  7. 你知道哪些狀态碼
  8. options請求方法有什麼用
  9. less,sass它們的作用是什麼
  10. 平時怎麼學習
  11. 你什麼時候可以來實作
  12. 能實習多久
四面算是比較簡單的一次面試,面完後第二天晚上hr打來了電話,約與hr面的時間

           

hr面

  1. 你什麼時候接觸前端的
  2. 對未來的規劃是什麼
  3. 你對哪個項目印象深刻,說一下項目的難點
  4. 你對我們公司有什麼了解
  5. 能實習多久等等
hr面主要聊一聊人生理想,未來規劃啥的,大概半小時的時間

           

四輪技術面+一輪hr面結束,學習到了不少,面試也是一個學習檢測自己的過程,面試前大概複習了一周的時間,把以前的代碼看了一下,位元組跳動比較注重算法,面試前刷了下leetcode和劍指offer,也刷了些在牛客網上的面經。。大概就說這些了,寫代碼去了~