我有一個朋友的分享
秋招,有幸去字節面試了,順便拿到了offer,把自己記憶中的東西寫下來,供大家參考一下,有啥對不對的地方,歡迎大家指正!
一面 1h 左右
css 如何實現垂直居中?(這里我就說了四種,包括行內和 absolute 的情況)
position 有哪幾種?分別說一下對應的效果和用法
css 選擇器優先級,這里忘了復習了有點尷尬,小細節沒在意,不過大概的說 出來了也算是通過了
js 原型鏈,問了一下 js 如何創建對象,然后給了一個例子,問這個例子的原 型鏈長什么樣,代碼區打了一下,到對象和函數上層的時候有點卡殼,然后面試 官提醒了我一下 object 和 function 互相是循環的 (那個時候基礎知識真的不咋行,現在看看感覺真是太丟臉了 qaq)
順勢問了 new 的操作,然后實現了一個 new 的函數(寫了一個比較乞丐的 版本,解釋了一下,還行)
然后因為我簡歷上寫了會 vue 就問了 MVVM 結構,聊到了頁面渲染和響應 式,我就順便講了一下響應式
MVVM 和 MVC的區別
Vue 生命周期,在哪個階段可以獲取頁面 dom 信息
Vue 的組件通信 10. 聊到一些網絡相關,問了 TCP 和 UDP 的區別
講一下 TCP 的三次握手和四次揮手
然后是問了 promise 有哪幾種狀態
手寫一個 promise(這個我寫了一個雛形,沒具體實現全,有點可惜,不過 面試官跟我說還行 2333333 一面的氣氛真的 real 和諧充滿歡聲笑語)
算法題:最長公共前綴,這個做過!開心!
算法題:多層數組嵌套降級,這個用了遞歸卡了一陣子……思路是對的但是 實現上效率有點低,還把迭代和遞歸實現搞混了……(那個時候還不會 reduce, 實在是菜。) 因為在字節大概經歷了 4 次一面(兩次實習兩次秋招),一面和其他公司差不多 都是基礎知識題,不過最大的區別可能是特別強調實戰能力,字節的面試全程都在手撕,提前批一面代碼區刷新了 8 回(8 個題都得寫代碼)感覺一次面試的代 碼濃度可以高過 50%這樣,非常注重實戰。但是難度也都不是高,冷靜思考都 沒什么問題!不會了還可以跟面試官討論 2333333 面試官們人都挺好的
二面 1h 左右
大概在一面結束之后 5-10min 吧,我先喝了幾口水……一面叨叨了一個小時沒 停真的很累,然后二面的面試官進來了,二面就比較涼……因為字節是秋招我經 歷的第一場面試所以 開頭問了一下項目的情況,根據項目問了一點我的工作,接觸前端有多久(因為 我也就一年左右的經驗所以其實會的不多),在每個項目里學到了什么,沒做項 目的時候學了什么,怎么學的這樣的問題,然后開始就是實戰寫代碼,這波我答 的就有點慘了……
給了一個具體的需求讓寫 html+css,需求大概是模塊水平垂直居中對齊+不 定高,按文字自適應+帶灰色遮罩+彈出動畫 都怪我 css 好久沒寫了寫的很費勁……建議各位 css 可以多找幾個 css 實例題做 做!倆次面字節二面都會考具體的 css 實現
然后問了一下 css 的動畫怎么做,但是我沒用過……答了一個 3D 和 rotation (dbq 我好菜)后來就順便說了幾句 setTimeOut, setTimeInterval 和 RequestAnimiationFrame,這里感覺答得不是很好
flex 有哪些常用標簽,我說了幾個我用過的,面試官反問了我兩個
又問了一下 position,這里具體解釋了一下 position 的屬性影響
還是具體實現,給一個 ul 下面插入 100 個 li 應該怎么插入,如何優化 dom 操作
具體實現:有一個有一百萬個 url 的數組,如何從這一百萬個 url 里獲得資源 (我答了 promise 和 promise.all,寫了一下思路,面試官要我寫具體實現,就 也沒寫得很明白,整體拉低了不少印象分。感覺字節的面試真的很看實踐!光有 思路是不夠的!)
算法:判斷鏈表內是否存在環,這個題其實我做過,但是當時忘了……面試官 提醒了一下才知道是快慢指針……真的挺不好意思的嗚嗚嗚
總體上字節的二面特別看重具體實現,會說思路不夠,需要真正的寫出可以實現 的代碼來。一般算法就是 leetcode 的 easy/medium,不會太難,一些基本概 念也會挖的比較深,總體上說還是很有難度。總之提前批止步二面了。字節的面試一般一面和二面肯定會連在一起,如果三面面試官也有時間的話三面也會連下 來,總之要是過了一陣子都沒消息基本上就是涼了 qaq 總之這次面試結束大概 過了半個月左右 hr 小姐姐又撈了我一手跟我約了正式批再來一次,還很貼心地 囑咐了我好多讓我多做點題哈哈哈哈哈!
正式批 一面 1h 左右
之前都是先問基礎,這次很難得的從一面就開始問項目了!
http 請求的幾個常見方法
說下 get 和 post 的區別
get 和 post 的具體應用場景和一些注意事項(忘了這里是啥問題了,總之一 路聊到了 301,302 和 307 狀態碼,聊了一下重定向的一些安全處理)
因為剛剛說了在 http 跳 https 的時候存在 post 改 get 的情況所以問了一下 為什么(操作冪等性)
線程和進程的區別(沒學過操作系統所以直接說了不知道,放棄掙扎.jpg)
說下跨域
http 簡單請求是什么意思
瀏覽器緩存策略
TCP 和 UDP 的區別
了解流媒體對 UDP 穩定性的優化處理嗎(不了解。但是面試官說沒事回去 可以自己去看看)
開始聊 js,js 的基本數據類型(說了 symbol 和 bigInt)
哪些操作是異步的?(說了 promise setTimeout)
promise 的一些基本概念
async await 的一些用法
js 繼承的幾種方式(居然沒讓我寫代碼我都準備好了……)
css 好像考了點啥不太重要的我忘了 dbq,總之還有對項目細節的一些提問,好像還問了一下排序算法的時間復雜度空間復雜度……(具體忘了)
做個題,實現鏈表尾部插入新節點。這個我寫得挺磕磕絆絆的 233333 但是 在面試官的提醒下還是做出來了,主要是考慮判斷傳入鏈表是否有頭結點,是否 為尾部指針
算法題:版本號判斷,還是挺簡單的
總之基本上一面一個小時左右,然后叫我等了一會(大概十分鐘?)來喊二面面
試官二面 1h 左右
二面面試官感覺非常的和藹,但是也很有氣場!二面時間也差不多一個小時,主要是被我寫題磨磨蹭蹭給耽誤了好多時間嗚嗚嗚
大概問了一些項目相關問題,比如印象比較深的技術點,怎么學習的和解決 的 balabala
開始正式問問題:css 的垂直居中和水平居中(說了一堆)
css 選擇器優先級(這次我會了!自豪!)
html 的 dom 樹如何生成的(一桿子捅到虛擬 dom 被友善地提醒了扯得有點遠,dbq 這題我不會)
小程序和 pc 頁面有什么差異(因為項目里寫了小程序)
項目里的一些性能優化的點
7.做個題,看代碼是否能完成輸出,如果不能就說下幾個改的點,題太長了沒記 寫下幾個考點吧。大概是一個利用異步實現 1 秒輸出一個條目的一個函數,生成 條目要讀取對象內的數據,主要修改點是:1.for 循環內使用 let 控制作用域 2. setTimeout 單純用 1000 無法實現 1 秒輸出一個需要乘以 i+1 3.作用域無法綁 定對象,獲取不到數據(這里說了幾個改變 this 指向的方法比如箭頭函數 bind/apply/call 這樣的)4.這個我沒想到面試官提醒我了一下 i 是從零開始的但 是條目從 1 開始打需要加 1……其實第二條的時候我還記得這個事的結果最后我 忘了有點尷尬 23333
代碼實現:設計一個任務隊列,有 on,trigger 和 off 方法,分別完成注冊 事件觸發回調,觸發當前事件全部回調,和取消當前事件的任務隊列的功能(其 實不難,主要是我寫的磨磨蹭蹭的……最后想通了就寫的很快了,也很感謝面試 官的耐心等待和思路提醒!) 9. 一個挺簡單的算法實現,在遞增數組內尋找連續值并放進新數組最后返回一 個二維數組這樣子([1,2,3,5,6,9,10]=>[[1,2,3],[5,6],[9,10])反正挺簡單的寫的也很快,被夸了思路挺清晰哈哈哈開心!畢竟我算法超菜的難得碰上一個會寫 的……
基本上就這些了然后跟我說可以等下三面。后來 hr 姐姐給我打了電話說三面面 試官有事希望能推遲一下然后說等他回話再約我三面。然后過了半個小時左右又 打來了電話說可以現在面試然后就接著面了
三面 30min 左右
其實問的東西不是很多,基本上就是很常規的那種怎么學習的,項目里用了什么 技術,有哪些困難,這里聊到了之前做的 cms 的一個登陸功能,順便問了一下 有沒有了解別的登陸的技術。(對不起我太菜了沒了解過別的。)還有一些頁面路 由處理這樣的。然后問了個人的發展方向,以及對前端未來發展的看法,最后說 到希望能來實習,什么時候能來以及能來實習多久。感覺其實還好?三面雖然挺 緊張但不是技術面,主要是感覺面試官超沉穩就我一直在 BB 總怕說錯什么顯得 我超菜(害本來也菜)
hr 面 30min 左右
面完三面之后急匆匆地問 hr 小姐姐什么時候能出結果,小姐姐說不著急的她那 邊有消息立刻通知我。然后我收拾了一下準備出門吃飯結果就在收拾包的時候接 到 hr 小姐姐的電話問我可不可以現在 hr 面(啊當時超開心!)
hr 面也挺常規的吧,看了我的投遞記錄發現我來字節面了這么多次問我這幾次有什么進步,學了什么(終于給我放進去了我太難了.jpg)
字節的面試體驗怎么樣
有沒有考研的打算,為什么?
介紹一下簡歷上的三個項目,為什么要選這三個項目進行展示?
在項目中學到了哪些東西,有什么心得體會
怎么學習前端的,怎么規劃未來學習
小組合作中的壓力怎么應對的,如果要面對失敗會怎么調節(可能是因為全 程我都蜜汁自信就問了這個)
希望能來實習,大概什么時候可以來,可以來實習多久? 大概結束兩天就拿到意向書了,效率真的很高!辛苦字節的工作人員了 233333
寫在最后
整理這個的是一些大企業的大佬,認真地和他們學習了很多經驗以及獲取了很多直觀的資料,現在全部拿出來奉獻給大家!想系統學習前端web的朋友,我都整理在文件中了,可以這邊的交流裙前面912,中間629,最后057,裙子里從學生到阿里大佬都有,資源給大家拉滿,不見不散哦!