作者:甘先森 鏈接:
https://juejin.im/post/5e6a14b1f265da572978a1d3
筆者讀大三,前端小白一枚,正在準備春招,人生第一次面試,投了頭條前端,總共經歷了四輪技術面試和一輪hr面,不多說,直接上題:
一面
自我介紹,然後問了爲什麼學習前端
算法:實現36進制轉換
簡述https原理,以及與http的區別
操作系統中進程和線程怎麼通信
node中cluster是怎樣開啓多進程的,並且一個端口可以被多個進程監聽嗎
實現原生ajax
vue-router源碼
vue原理(手寫代碼,實現數據劫持)
算法:樹的遍歷有幾種方式,實現下層次遍歷
算法:判斷對稱二叉樹
第一次面試,當時比較緊張,面試官很和藹,面試中問到操作系統的進程,當時不記得操作系統,就提到了node多進程,然後面試官就問了cluster是怎樣開啓多進程的,並且一個端口可以被多個進程監聽嗎?答完後面試官就問了後面寫完vue數據劫持的時候,面試官又問了Object.defineProperty除了set get外還有什麼屬性,我回答了configurable enumerable。vue-router主要提到了hashchange事件等,順便跟面試官聊了一下h5的historyAPI。時間總共是50分鐘左右,一面完了後面試官讓我等五分鐘,接下來二面就開始了
二面
介紹一下項目中的難點
let var const 有什麼區別
你知道哪些http頭部
怎麼與服務端保持連接
http請求跨域問題,你都知道哪些解決跨域的方法
webpack怎麼優化
7.. 你瞭解哪些請求方法,分別有哪些作用和不同
你覺得typescript和javascript有什麼區別
typescript你都用過哪些類型
typescript中type和interface的區別
react怎麼優化
算法題:合併亂序區間
筆者在回答http頭部的時候,順帶跟面試官聊到了瀏覽器緩存,回答跨域的時候,面試官又讓我用jsonp實現一下跨域,回答webpack的時候提到了happypack和treeshaking,面試官就順帶問了一下他們的作用,算法題我當時沒有寫出來(主要是因爲菜),二面大概40多分鐘結束,面試完後面試官說稍後hr會聯繫我,讓我注意保持通信,還沒過一小時,hr打電話約我第三次面試時間,不得不說,字節的效率真的高
三面
你瞭解node多進程嗎
node進程中怎麼通信
node可以開啓多線程嗎
算法題:老師分餅乾,每個孩子只能得到一塊餅乾,但每個孩子想要的餅乾大小不盡相同。目標是儘量讓更多的孩子滿意。如孩子的要求是 1, 3, 5, 4, 2,餅乾是1, 1,最多能讓1個孩子滿足。如孩子的要求是 10, 9, 8, 7, 6,餅乾是7, 6, 5,最多能讓2個孩子滿足。
算法題:給定一個正整數數列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到來的電話,約下一輪的面試時間。
四面
算法題:兩個有序鏈表和併成一個有序鏈表
https與http有什麼區別(一面剛好也被問到)
cookie有哪些屬性
cookie,session,localstorage,sessionstorage有什麼區別
怎麼禁止js訪問cookie
position有哪些屬性
你知道哪些狀態碼
options請求方法有什麼用
less,sass它們的作用是什麼
平時怎麼學習
你什麼時候可以來實現
能實習多久
四面算是比較簡單的一次面試,面完後第二天晚上hr打來了電話,約與hr面的時間
hr面
你什麼時候接觸前端的
平時怎麼學習
對未來的規劃是什麼
你對哪個項目印象深刻,說一下項目的難點
你對我們公司有什麼瞭解
能實習多久等等
hr面主要聊一聊人生理想,未來規劃啥的,大概半小時的時間
四輪技術面+一輪hr面結束,學習到了不少,面試也是一個學習檢測自己的過程,面試前大概複習了一週的時間,把以前的代碼看了一下,字節跳動比較注重算法,面試前刷了下leetcode和劍指offer,也刷了些在牛客網上的面經。。大概就說這些了,寫代碼去了~
祝大家都能收穫大廠offer~