字節(jié)跳動(dòng)-生活服務(wù) 暑期實(shí)習(xí) 4.14一面
原本一面約的是45分鐘 面完整個(gè)過(guò)程大概一個(gè)小時(shí)多一點(diǎn),大概可能是因?yàn)橹虚g有一些問(wèn)題進(jìn)行了一些討論,因?yàn)椴惶浀妙}目順序了,就想到什么問(wèn)題就寫(xiě)什么問(wèn)題了,順序不重要!先問(wèn)題然后再手寫(xiě)代碼
-
自我介紹
-
怎么接觸到的前端呢
-
學(xué)習(xí)方式有哪一些?視頻 博客 書(shū)籍 項(xiàng)目中運(yùn)用
-
實(shí)習(xí)主要做了些什么? 主要做哪些項(xiàng)目?tob的也有toc的也有,然后根據(jù)實(shí)習(xí)里的組件庫(kù)項(xiàng)目討論了一下jest測(cè)試用例 覆蓋率等等
面試官說(shuō)問(wèn)一些基礎(chǔ)的
-
css 中 bfc了解嗎 說(shuō)一下是什么 有什么應(yīng)用場(chǎng)景
-
說(shuō)一說(shuō)箭頭函數(shù)? 說(shuō)完了問(wèn) 箭頭函數(shù)的原型函數(shù)是什么 一時(shí)間腦子不清醒 沒(méi)答上來(lái) 然后面試官說(shuō)換一個(gè)思路 先說(shuō)一下new操作符 答到new操作符不能去new箭頭函數(shù) 所以猛的想起箭頭函數(shù)是沒(méi)有原型對(duì)象 面試官就說(shuō)是對(duì)的
-
js的事件模型哪幾個(gè)階段都了解嗎?那是先捕獲階段還是先冒泡階段?
-
瀏覽器的本地存儲(chǔ)有了解嗎?回答cookie和storage 存儲(chǔ)大小 過(guò)期時(shí)間等等 又問(wèn)了問(wèn)存儲(chǔ)大小具體?回答cookie 4kb左右 ,storage有幾mb
-
https和http ?講了混合加密過(guò)程和ssl證書(shū)數(shù)字簽名等等。
-
react hooks 在if判斷中使用會(huì)怎么樣?當(dāng)時(shí)也沒(méi)想清楚 面試官又說(shuō)那我們也換一個(gè)思路 剛剛你說(shuō)你了解react源碼 那對(duì)它的fiber架構(gòu)有了解嗎 我簡(jiǎn)單說(shuō)了一下任務(wù)的優(yōu)先級(jí)
-
反問(wèn)那fiber是一個(gè)什么數(shù)據(jù)結(jié)構(gòu)?我說(shuō)是樹(shù)結(jié)構(gòu) 面試官說(shuō)不對(duì) 是鏈表結(jié)構(gòu) 如果if語(yǔ)句去調(diào)hook 會(huì)將整個(gè)結(jié)構(gòu)打斷的,然后基于這個(gè)和面試官討論了一小會(huì)。
-
瀏覽器的緩存有了解嗎?說(shuō)了強(qiáng)制緩存和協(xié)商緩存。
-
那是用哪個(gè)字段控制的呢?
-
跨域問(wèn)題有遇到過(guò)嗎?怎么解決的呢?答完后問(wèn)我實(shí)際項(xiàng)目和實(shí)習(xí)中遇到是怎么解決的,回答了項(xiàng)目里的nginx反向代理
-
代碼題:關(guān)于this指向的問(wèn)題,面試官讓我說(shuō)思考這個(gè)題的流程 √
-
代碼題:關(guān)于async/await的一道,面試官本來(lái)說(shuō)讓我想一下然后寫(xiě)到邊上,我說(shuō)我直接說(shuō)就可以說(shuō),然后他可能看我答得太輕松了就說(shuō)我再想還考點(diǎn)啥,然后他就邊想邊手敲了一段代碼(面試官想再考考) √
-
問(wèn)下面這一段放在瀏覽器執(zhí)行,會(huì)怎么樣?我一開(kāi)始在分析,然后分析著他就問(wèn)瀏覽器界面會(huì)卡死嗎?我也不清楚標(biāo)準(zhǔn)答案,我說(shuō)宏任務(wù)隊(duì)列會(huì)不斷更新,如果頁(yè)面已經(jīng)渲染完了就不會(huì)讓瀏覽器卡死。
const fn = ()=>{ setTimeout(()=>{fn();},0) } fn();
-
緊接著他又改了改:那下面這個(gè)會(huì)怎么樣呢?我說(shuō)這個(gè)會(huì)不斷更新微任務(wù)隊(duì)列可能導(dǎo)致界面卡死,他說(shuō)當(dāng)前這一個(gè)執(zhí)行棧會(huì)怎么樣,我回答可能永遠(yuǎn)不會(huì)停止所以界面卡死。
const fn = ()=>{ Promise.resolve().then(()=>{fn();}) } fn();
-
我也不知道上面兩題回答是否正確,面試官也沒(méi)說(shuō)就接著考:節(jié)流函數(shù)知道嗎?封裝一個(gè)節(jié)流函數(shù)。很快寫(xiě)完,面試官問(wèn)了問(wèn)里面變量的含義,沒(méi)問(wèn)題 √
-
Promise.all方法有用過(guò)嗎?實(shí)現(xiàn)一下?手寫(xiě)了一個(gè),然后有一點(diǎn)細(xì)節(jié)問(wèn)題面試官讓我改一下,參數(shù)里有不是promise情況怎么做?那想要返回的結(jié)果和入?yún)⒁灰粚?duì)應(yīng)該怎么做?
-
做一道算法題吧!全排列 用遞歸完成了 第一次輸出有問(wèn)題,后來(lái)有個(gè)地方改成Array.from(),然后就a了,面試官問(wèn)為什么會(huì)這樣?答了一下from實(shí)現(xiàn)淺拷貝。
-
反問(wèn):對(duì)我之后學(xué)習(xí)的一個(gè)建議?說(shuō)也沒(méi)什么特別的建議,現(xiàn)在肯定不如那些工作經(jīng)驗(yàn)幾年的,以后在業(yè)務(wù)場(chǎng)景不斷提升自己就好了。
-
反問(wèn):技術(shù)棧,字節(jié)90%都是react
-
反問(wèn):應(yīng)該對(duì)最近微前端,webgl,低代碼那些去學(xué)習(xí)一下嗎?回答說(shuō),都是根據(jù)業(yè)務(wù)場(chǎng)景再去選擇用什么的,在日新月異的環(huán)境應(yīng)該打牢基礎(chǔ),這樣學(xué)一個(gè)新的東西才會(huì)更快,低代碼包括微前端都有局限,只是加快效率。
總結(jié):整個(gè)面試的體驗(yàn)特別好特別好,面試官遇到我一時(shí)間沒(méi)答出來(lái)的也讓我別緊張,然后引導(dǎo)我去解開(kāi),感覺(jué)更加是看重思考問(wèn)題的能力,很多地方都有豁然開(kāi)朗的感覺(jué)。面完不到一個(gè)小時(shí)就給結(jié)果進(jìn)二面了。