我有一個(gè)朋友的分享
秋招,有幸去字節(jié)面試了,順便拿到了offer,把自己記憶中的東西寫下來(lái),供大家參考一下,有啥對(duì)不對(duì)的地方,歡迎大家指正!

一面 1h 左右
css 如何實(shí)現(xiàn)垂直居中?(這里我就說(shuō)了四種,包括行內(nèi)和 absolute 的情況)
position 有哪幾種?分別說(shuō)一下對(duì)應(yīng)的效果和用法
css 選擇器優(yōu)先級(jí),這里忘了復(fù)習(xí)了有點(diǎn)尷尬,小細(xì)節(jié)沒(méi)在意,不過(guò)大概的說(shuō) 出來(lái)了也算是通過(guò)了
js 原型鏈,問(wèn)了一下 js 如何創(chuàng)建對(duì)象,然后給了一個(gè)例子,問(wèn)這個(gè)例子的原 型鏈長(zhǎng)什么樣,代碼區(qū)打了一下,到對(duì)象和函數(shù)上層的時(shí)候有點(diǎn)卡殼,然后面試 官提醒了我一下 object 和 function 互相是循環(huán)的 (那個(gè)時(shí)候基礎(chǔ)知識(shí)真的不咋行,現(xiàn)在看看感覺(jué)真是太丟臉了 qaq)
順勢(shì)問(wèn)了 new 的操作,然后實(shí)現(xiàn)了一個(gè) new 的函數(shù)(寫了一個(gè)比較乞丐的 版本,解釋了一下,還行)
然后因?yàn)槲液?jiǎn)歷上寫了會(huì) vue 就問(wèn)了 MVVM 結(jié)構(gòu),聊到了頁(yè)面渲染和響應(yīng) 式,我就順便講了一下響應(yīng)式
MVVM 和 MVC的區(qū)別
Vue 生命周期,在哪個(gè)階段可以獲取頁(yè)面 dom 信息
Vue 的組件通信 10. 聊到一些網(wǎng)絡(luò)相關(guān),問(wèn)了 TCP 和 UDP 的區(qū)別
講一下 TCP 的三次握手和四次揮手
然后是問(wèn)了 promise 有哪幾種狀態(tài)
手寫一個(gè) promise(這個(gè)我寫了一個(gè)雛形,沒(méi)具體實(shí)現(xiàn)全,有點(diǎn)可惜,不過(guò) 面試官跟我說(shuō)還行 2333333 一面的氣氛真的 real 和諧充滿歡聲笑語(yǔ))
算法題:最長(zhǎng)公共前綴,這個(gè)做過(guò)!開(kāi)心!
算法題:多層數(shù)組嵌套降級(jí),這個(gè)用了遞歸卡了一陣子……思路是對(duì)的但是 實(shí)現(xiàn)上效率有點(diǎn)低,還把迭代和遞歸實(shí)現(xiàn)搞混了……(那個(gè)時(shí)候還不會(huì) reduce, 實(shí)在是菜。) 因?yàn)樵谧止?jié)大概經(jīng)歷了 4 次一面(兩次實(shí)習(xí)兩次秋招),一面和其他公司差不多 都是基礎(chǔ)知識(shí)題,不過(guò)最大的區(qū)別可能是特別強(qiáng)調(diào)實(shí)戰(zhàn)能力,字節(jié)的面試全程都在手撕,提前批一面代碼區(qū)刷新了 8 回(8 個(gè)題都得寫代碼)感覺(jué)一次面試的代 碼濃度可以高過(guò) 50%這樣,非常注重實(shí)戰(zhàn)。但是難度也都不是高,冷靜思考都 沒(méi)什么問(wèn)題!不會(huì)了還可以跟面試官討論 2333333 面試官們?nèi)硕纪玫?/p>

二面 1h 左右
大概在一面結(jié)束之后 5-10min 吧,我先喝了幾口水……一面叨叨了一個(gè)小時(shí)沒(méi) 停真的很累,然后二面的面試官進(jìn)來(lái)了,二面就比較涼……因?yàn)樽止?jié)是秋招我經(jīng) 歷的第一場(chǎng)面試所以 開(kāi)頭問(wèn)了一下項(xiàng)目的情況,根據(jù)項(xiàng)目問(wèn)了一點(diǎn)我的工作,接觸前端有多久(因?yàn)?我也就一年左右的經(jīng)驗(yàn)所以其實(shí)會(huì)的不多),在每個(gè)項(xiàng)目里學(xué)到了什么,沒(méi)做項(xiàng) 目的時(shí)候?qū)W了什么,怎么學(xué)的這樣的問(wèn)題,然后開(kāi)始就是實(shí)戰(zhàn)寫代碼,這波我答 的就有點(diǎn)慘了……
給了一個(gè)具體的需求讓寫 html+css,需求大概是模塊水平垂直居中對(duì)齊+不 定高,按文字自適應(yīng)+帶灰色遮罩+彈出動(dòng)畫 都怪我 css 好久沒(méi)寫了寫的很費(fèi)勁……建議各位 css 可以多找?guī)讉€(gè) css 實(shí)例題做 做!倆次面字節(jié)二面都會(huì)考具體的 css 實(shí)現(xiàn)
然后問(wèn)了一下 css 的動(dòng)畫怎么做,但是我沒(méi)用過(guò)……答了一個(gè) 3D 和 rotation (dbq 我好菜)后來(lái)就順便說(shuō)了幾句 setTimeOut, setTimeInterval 和 RequestAnimiationFrame,這里感覺(jué)答得不是很好
flex 有哪些常用標(biāo)簽,我說(shuō)了幾個(gè)我用過(guò)的,面試官反問(wèn)了我兩個(gè)
又問(wèn)了一下 position,這里具體解釋了一下 position 的屬性影響
還是具體實(shí)現(xiàn),給一個(gè) ul 下面插入 100 個(gè) li 應(yīng)該怎么插入,如何優(yōu)化 dom 操作
具體實(shí)現(xiàn):有一個(gè)有一百萬(wàn)個(gè) url 的數(shù)組,如何從這一百萬(wàn)個(gè) url 里獲得資源 (我答了 promise 和 promise.all,寫了一下思路,面試官要我寫具體實(shí)現(xiàn),就 也沒(méi)寫得很明白,整體拉低了不少印象分。感覺(jué)字節(jié)的面試真的很看實(shí)踐!光有 思路是不夠的?。?/p>
算法:判斷鏈表內(nèi)是否存在環(huán),這個(gè)題其實(shí)我做過(guò),但是當(dāng)時(shí)忘了……面試官 提醒了一下才知道是快慢指針……真的挺不好意思的嗚嗚嗚
總體上字節(jié)的二面特別看重具體實(shí)現(xiàn),會(huì)說(shuō)思路不夠,需要真正的寫出可以實(shí)現(xiàn) 的代碼來(lái)。一般算法就是 leetcode 的 easy/medium,不會(huì)太難,一些基本概 念也會(huì)挖的比較深,總體上說(shuō)還是很有難度。總之提前批止步二面了。字節(jié)的面試一般一面和二面肯定會(huì)連在一起,如果三面面試官也有時(shí)間的話三面也會(huì)連下 來(lái),總之要是過(guò)了一陣子都沒(méi)消息基本上就是涼了 qaq 總之這次面試結(jié)束大概 過(guò)了半個(gè)月左右 hr 小姐姐又撈了我一手跟我約了正式批再來(lái)一次,還很貼心地 囑咐了我好多讓我多做點(diǎn)題哈哈哈哈哈!

正式批 一面 1h 左右
之前都是先問(wèn)基礎(chǔ),這次很難得的從一面就開(kāi)始問(wèn)項(xiàng)目了!
http 請(qǐng)求的幾個(gè)常見(jiàn)方法
說(shuō)下 get 和 post 的區(qū)別
get 和 post 的具體應(yīng)用場(chǎng)景和一些注意事項(xiàng)(忘了這里是啥問(wèn)題了,總之一 路聊到了 301,302 和 307 狀態(tài)碼,聊了一下重定向的一些安全處理)
因?yàn)閯倓傉f(shuō)了在 http 跳 https 的時(shí)候存在 post 改 get 的情況所以問(wèn)了一下 為什么(操作冪等性)
線程和進(jìn)程的區(qū)別(沒(méi)學(xué)過(guò)操作系統(tǒng)所以直接說(shuō)了不知道,放棄掙扎.jpg)
說(shuō)下跨域
http 簡(jiǎn)單請(qǐng)求是什么意思
瀏覽器緩存策略
TCP 和 UDP 的區(qū)別
了解流媒體對(duì) UDP 穩(wěn)定性的優(yōu)化處理嗎(不了解。但是面試官說(shuō)沒(méi)事回去 可以自己去看看)
開(kāi)始聊 js,js 的基本數(shù)據(jù)類型(說(shuō)了 symbol 和 bigInt)
哪些操作是異步的?(說(shuō)了 promise setTimeout)
promise 的一些基本概念
async await 的一些用法
js 繼承的幾種方式(居然沒(méi)讓我寫代碼我都準(zhǔn)備好了……)
css 好像考了點(diǎn)啥不太重要的我忘了 dbq,總之還有對(duì)項(xiàng)目細(xì)節(jié)的一些提問(wèn),好像還問(wèn)了一下排序算法的時(shí)間復(fù)雜度空間復(fù)雜度……(具體忘了)
做個(gè)題,實(shí)現(xiàn)鏈表尾部插入新節(jié)點(diǎn)。這個(gè)我寫得挺磕磕絆絆的 233333 但是 在面試官的提醒下還是做出來(lái)了,主要是考慮判斷傳入鏈表是否有頭結(jié)點(diǎn),是否 為尾部指針
算法題:版本號(hào)判斷,還是挺簡(jiǎn)單的
總之基本上一面一個(gè)小時(shí)左右,然后叫我等了一會(huì)(大概十分鐘?)來(lái)喊二面面

試官二面 1h 左右
二面面試官感覺(jué)非常的和藹,但是也很有氣場(chǎng)!二面時(shí)間也差不多一個(gè)小時(shí),主要是被我寫題磨磨蹭蹭給耽誤了好多時(shí)間嗚嗚嗚
大概問(wèn)了一些項(xiàng)目相關(guān)問(wèn)題,比如印象比較深的技術(shù)點(diǎn),怎么學(xué)習(xí)的和解決 的 balabala
開(kāi)始正式問(wèn)問(wèn)題:css 的垂直居中和水平居中(說(shuō)了一堆)
css 選擇器優(yōu)先級(jí)(這次我會(huì)了!自豪!)
html 的 dom 樹(shù)如何生成的(一桿子捅到虛擬 dom 被友善地提醒了扯得有點(diǎn)遠(yuǎn),dbq 這題我不會(huì))
小程序和 pc 頁(yè)面有什么差異(因?yàn)轫?xiàng)目里寫了小程序)
項(xiàng)目里的一些性能優(yōu)化的點(diǎn)
7.做個(gè)題,看代碼是否能完成輸出,如果不能就說(shuō)下幾個(gè)改的點(diǎn),題太長(zhǎng)了沒(méi)記 寫下幾個(gè)考點(diǎn)吧。大概是一個(gè)利用異步實(shí)現(xiàn) 1 秒輸出一個(gè)條目的一個(gè)函數(shù),生成 條目要讀取對(duì)象內(nèi)的數(shù)據(jù),主要修改點(diǎn)是:1.for 循環(huán)內(nèi)使用 let 控制作用域 2. setTimeout 單純用 1000 無(wú)法實(shí)現(xiàn) 1 秒輸出一個(gè)需要乘以 i+1 3.作用域無(wú)法綁 定對(duì)象,獲取不到數(shù)據(jù)(這里說(shuō)了幾個(gè)改變 this 指向的方法比如箭頭函數(shù) bind/apply/call 這樣的)4.這個(gè)我沒(méi)想到面試官提醒我了一下 i 是從零開(kāi)始的但 是條目從 1 開(kāi)始打需要加 1……其實(shí)第二條的時(shí)候我還記得這個(gè)事的結(jié)果最后我 忘了有點(diǎn)尷尬 23333
代碼實(shí)現(xiàn):設(shè)計(jì)一個(gè)任務(wù)隊(duì)列,有 on,trigger 和 off 方法,分別完成注冊(cè) 事件觸發(fā)回調(diào),觸發(fā)當(dāng)前事件全部回調(diào),和取消當(dāng)前事件的任務(wù)隊(duì)列的功能(其 實(shí)不難,主要是我寫的磨磨蹭蹭的……最后想通了就寫的很快了,也很感謝面試 官的耐心等待和思路提醒!) 9. 一個(gè)挺簡(jiǎn)單的算法實(shí)現(xiàn),在遞增數(shù)組內(nèi)尋找連續(xù)值并放進(jìn)新數(shù)組最后返回一 個(gè)二維數(shù)組這樣子([1,2,3,5,6,9,10]=>[[1,2,3],[5,6],[9,10])反正挺簡(jiǎn)單的寫的也很快,被夸了思路挺清晰哈哈哈開(kāi)心!畢竟我算法超菜的難得碰上一個(gè)會(huì)寫 的……
基本上就這些了然后跟我說(shuō)可以等下三面。后來(lái) hr 姐姐給我打了電話說(shuō)三面面 試官有事希望能推遲一下然后說(shuō)等他回話再約我三面。然后過(guò)了半個(gè)小時(shí)左右又 打來(lái)了電話說(shuō)可以現(xiàn)在面試然后就接著面了

三面 30min 左右
其實(shí)問(wèn)的東西不是很多,基本上就是很常規(guī)的那種怎么學(xué)習(xí)的,項(xiàng)目里用了什么 技術(shù),有哪些困難,這里聊到了之前做的 cms 的一個(gè)登陸功能,順便問(wèn)了一下 有沒(méi)有了解別的登陸的技術(shù)。(對(duì)不起我太菜了沒(méi)了解過(guò)別的。)還有一些頁(yè)面路 由處理這樣的。然后問(wèn)了個(gè)人的發(fā)展方向,以及對(duì)前端未來(lái)發(fā)展的看法,最后說(shuō) 到希望能來(lái)實(shí)習(xí),什么時(shí)候能來(lái)以及能來(lái)實(shí)習(xí)多久。感覺(jué)其實(shí)還好?三面雖然挺 緊張但不是技術(shù)面,主要是感覺(jué)面試官超沉穩(wěn)就我一直在 BB 總怕說(shuō)錯(cuò)什么顯得 我超菜(害本來(lái)也菜)

hr 面 30min 左右
面完三面之后急匆匆地問(wèn) hr 小姐姐什么時(shí)候能出結(jié)果,小姐姐說(shuō)不著急的她那 邊有消息立刻通知我。然后我收拾了一下準(zhǔn)備出門吃飯結(jié)果就在收拾包的時(shí)候接 到 hr 小姐姐的電話問(wèn)我可不可以現(xiàn)在 hr 面(啊當(dāng)時(shí)超開(kāi)心!)
hr 面也挺常規(guī)的吧,看了我的投遞記錄發(fā)現(xiàn)我來(lái)字節(jié)面了這么多次問(wèn)我這幾次有什么進(jìn)步,學(xué)了什么(終于給我放進(jìn)去了我太難了.jpg)
字節(jié)的面試體驗(yàn)怎么樣
有沒(méi)有考研的打算,為什么?
介紹一下簡(jiǎn)歷上的三個(gè)項(xiàng)目,為什么要選這三個(gè)項(xiàng)目進(jìn)行展示?
在項(xiàng)目中學(xué)到了哪些東西,有什么心得體會(huì)
怎么學(xué)習(xí)前端的,怎么規(guī)劃未來(lái)學(xué)習(xí)
小組合作中的壓力怎么應(yīng)對(duì)的,如果要面對(duì)失敗會(huì)怎么調(diào)節(jié)(可能是因?yàn)槿?程我都蜜汁自信就問(wèn)了這個(gè))
希望能來(lái)實(shí)習(xí),大概什么時(shí)候可以來(lái),可以來(lái)實(shí)習(xí)多久? 大概結(jié)束兩天就拿到意向書(shū)了,效率真的很高!辛苦字節(jié)的工作人員了 233333

寫在最后
整理這個(gè)的是一些大企業(yè)的大佬,認(rèn)真地和他們學(xué)習(xí)了很多經(jīng)驗(yàn)以及獲取了很多直觀的資料,現(xiàn)在全部拿出來(lái)奉獻(xiàn)給大家!想系統(tǒng)學(xué)習(xí)前端web的朋友,我都整理在文件中了,可以這邊的交流裙前面912,中間629,最后057,裙子里從學(xué)生到阿里大佬都有,資源給大家拉滿,不見(jiàn)不散哦!
