前端暑期面試記錄
小米一面掛
因?yàn)榧以谖錆h,所以還是蠻想去小米實(shí)習(xí),順便回家的,但可惜一面掛,感覺(jué)我的這個(gè)沒(méi)有很大的參考價(jià)值,因?yàn)榇_實(shí)不記得題目了。
1.代碼輸出提,閉包+變量提升。
先是一個(gè)很常規(guī)的輸出題,做出來(lái)后,就評(píng)論區(qū)發(fā)給你好幾個(gè)for循環(huán)的閉包+變量提升的題目,大致第一個(gè)是常規(guī)的,后面就是什么 自執(zhí)行,變量放里面,放外面,放后面,直接傳入變量,先定義函數(shù)后執(zhí)行這些東西結(jié)合for循環(huán)的變種,反正我感覺(jué)我是已經(jīng)繞 暈了,有點(diǎn)亂答的意思了,然后面試官就問(wèn)你答案,理由,也不說(shuō)正確與否,沒(méi)有反饋,后面覺(jué)得反正亂答也說(shuō)不出理由,干脆就說(shuō)不會(huì)了。
2.react輸出題,結(jié)合setTimeout,useEffect更改state,判斷打印順序,應(yīng)該是和閉包陷阱有關(guān)(但我當(dāng)時(shí)都沒(méi)了解過(guò)閉包陷阱),亂答。
3.Ts里any和unknown的區(qū)別?(如果真不熟悉ts,就別寫(xiě)了,哪怕是了解,但也可能我ts是真菜)
三個(gè)都答得稀爛,面試官這時(shí)候就有點(diǎn)不想面了,給了個(gè)手寫(xiě)題目(忘了,但應(yīng)該是easy難度的leetcode題目)+反問(wèn)結(jié)束。
后續(xù) 一二志愿全掛,不撈。
百度一面掛
1.給一個(gè)發(fā)送請(qǐng)求函數(shù),用react封裝一個(gè)暴露 isLoading(是否正在加載),refreshRequest(重發(fā)請(qǐng)求),data(請(qǐng)求結(jié)果),Request(發(fā)送請(qǐng)求),refreshTimes(重發(fā)次數(shù)),isSuccess(請(qǐng)求是否成功)的鉤子。(馬馬虎虎寫(xiě)出來(lái)了,后面提示要加useCallback緩存,但是也暴露了自己前端寫(xiě)的少,很不熟練的弱點(diǎn),所以感覺(jué)應(yīng)該是掛的原因之一)
2.閉包以及內(nèi)存泄漏怎么處理?
3.現(xiàn)在有一個(gè)音樂(lè)播放器,點(diǎn)擊播放音樂(lè)會(huì)新創(chuàng)建一個(gè)標(biāo)簽頁(yè)播放音樂(lè),但當(dāng)已經(jīng)有一首在播放時(shí)候,再點(diǎn)擊播放音樂(lè)會(huì)再創(chuàng)建一個(gè)標(biāo)簽頁(yè)播放新的音樂(lè),但原來(lái)標(biāo)簽頁(yè)的音樂(lè)要停止播放,用什么實(shí)現(xiàn)?
我:這個(gè)核心應(yīng)該是實(shí)現(xiàn)標(biāo)簽頁(yè)間的通信(但不知道怎么做?),猜著說(shuō)用postMessage這種類(lèi)似的手段實(shí)現(xiàn)。
面試官:用localStorage實(shí)現(xiàn),它設(shè)置刪除值能夠有API監(jiān)聽(tīng)到。
4.對(duì)AI使用的理解?
反問(wèn),后續(xù)毫無(wú)意外的掛了。
另一個(gè)百度約的面試一面掛,這位面試官的重心是深挖基礎(chǔ)。(很多東西不記得了)
1.輸入url過(guò)程。
2.渲染過(guò)程詳細(xì)講,主要是阻塞渲染這部分,又涉及到async和defer.
3.重繪重排 ,我提到讀取例如offsetHeight,為了防止讀取dirtyWord,會(huì)強(qiáng)制觸發(fā)重排,我項(xiàng)目里輪播圖的原生實(shí)現(xiàn)就用了這個(gè)特性實(shí)現(xiàn)無(wú)縫輪播動(dòng)畫(huà)。 面試官追問(wèn)還讀取哪些屬性也會(huì)觸發(fā)重排-->讀取computedStyle是否觸發(fā)-->答錯(cuò)了。
4.做一道蠻長(zhǎng)的事件循環(huán)題目,給出輸出順序。
做的題和下面的有點(diǎn)像,但是比下面的簡(jiǎn)單,不涉及到resolve(Promise)的Promise透?jìng)鲗?dǎo)致的順序變化。
我記得原題是掘金上看到過(guò),關(guān)鍵詞是:字節(jié) 事件循環(huán)題? 沒(méi)找到。
5.作用域鏈,介紹后給了兩個(gè)題說(shuō)結(jié)果: Nunber instanceof Number(false) Object instanceof Object(true)
雖然答案對(duì)了,但是解釋原理錯(cuò)了,面試官后續(xù)評(píng)價(jià)作用域鏈要加強(qiáng)。
6.js判斷變量的方法
其他的忘記了,后續(xù)掛了。
京東,還在泡?(京東是學(xué)歷夠就不掛人,全入池子嗎?)
京東前端實(shí)習(xí)面試貌似都比較隨意?
1面半小時(shí),介紹+項(xiàng)目+簡(jiǎn)單八股,印象深的是:幾種圖片格式的區(qū)別,首屏渲染加速的方式。
2面半小時(shí),完全不知道二面為什么是hr面,因?yàn)榇藭r(shí)還是求職早期,完全沒(méi)準(zhǔn)備過(guò)hr面的東西,亂答一通,感覺(jué)給人一種說(shuō)話沒(méi)邏輯,還處于學(xué)生思維的感覺(jué),但是這個(gè)問(wèn)的應(yīng)該是常規(guī)hr問(wèn)題,例如最大挑戰(zhàn),性格,缺點(diǎn)這些,深刻的是:如果我招你進(jìn)來(lái),你覺(jué)得我培養(yǎng)你最大的困難是什么? 我答的是我性格有點(diǎn)內(nèi)向,可能一開(kāi)始融入小組比較慢(確實(shí)這個(gè)答得有點(diǎn)傻逼)。
3面主管面,介紹自己,介紹項(xiàng)目,然后就問(wèn)了點(diǎn)TCP UDP的區(qū)別和其他很簡(jiǎn)單的八股,因?yàn)?點(diǎn)約的面,感覺(jué)這位面試官很疲憊,感覺(jué)他都沒(méi)聽(tīng)我說(shuō)話,一問(wèn)完,我開(kāi)始回答,他立刻仰頭靠著小瞇一下,真的感覺(jué)他超級(jí)疲憊。
武漢作業(yè)幫 (hr面后說(shuō)沒(méi)過(guò),轉(zhuǎn)部門(mén)加面,后續(xù)流程結(jié)束)
這個(gè)應(yīng)該是面試體驗(yàn)讓我很無(wú)語(yǔ)的,一二面+hr面后,hr面還說(shuō)我很符合他們的招聘需求(想回武漢,追求轉(zhuǎn)正),結(jié)果第二天通知部門(mén)沒(méi)過(guò),換部門(mén)加面。
一面:
1.變量提升輸出題,考點(diǎn)是變量和函數(shù)提升的優(yōu)先級(jí),這篇博文蠻詳細(xì)的,https://juejin.cn/post/6933377315573497864
2.事件委托,事件冒泡,事件捕獲。
3.你Es6用的多的東西。
4.promise,all,race,any這些。
5.promise.all的返回內(nèi)容,如果想錯(cuò)誤的結(jié)果也全部接收怎么辦? 我問(wèn)她是在promise.all上改還是其他方法?她說(shuō)都可以。
我回答promise.allSettled就可以,那你就手寫(xiě)實(shí)現(xiàn)allSettled吧。(成功手寫(xiě))
6.介紹事件循環(huán),這個(gè)可能我沒(méi)有按照傳統(tǒng)的宏任務(wù),微任務(wù)答的,我是說(shuō)任務(wù)隊(duì)列有優(yōu)先級(jí)
微任務(wù)- 交互任務(wù)-渲染前任務(wù)(requestAnimation,IntersectionApi)-延時(shí)任務(wù)(SetTimeout,interval)--網(wǎng)絡(luò)請(qǐng)求任務(wù)--空閑回調(diào)
這個(gè)回答可能給了面試官一點(diǎn)驚喜?
7.居中方式
8.介紹flex布局,這個(gè)好多都問(wèn)了,我還扯到了grid布局的一些屬性,說(shuō)我grid有時(shí)用的多點(diǎn)。
9.會(huì)vue嗎?(作業(yè)幫技術(shù)棧是vue) 不會(huì)。
10.反問(wèn)評(píng)價(jià),基礎(chǔ)不錯(cuò)。
二面
1.項(xiàng)目里虛擬列表怎么實(shí)現(xiàn)的?
2.react鉤子使用的規(guī)則---我答成具體某個(gè)鉤子使用的規(guī)則了----面試官提示不能在邏輯判斷中使用,例如if
3.useMemo和useCallback,介紹后答了因?yàn)閞eact使用Object.is進(jìn)行淺比較,如果對(duì)象或者函數(shù)傳參或作為依賴(lài),需要用這兩個(gè)包裹,才能實(shí)現(xiàn)避免重復(fù)渲染的效果。
4.react.Memo ---提到除了用上面的緩存鉤子包裹,也可以直接在第二個(gè)參數(shù)寫(xiě)比較函數(shù),實(shí)現(xiàn)你想要的深層比較功能。
5.react閉包陷阱,為什么會(huì)導(dǎo)致這個(gè)。
6.分別用promise 和 async await兩種方式實(shí)現(xiàn)串行請(qǐng)求。
7.面向?qū)ο蟮睦斫猓鄳B(tài)。
8.學(xué)過(guò)數(shù)據(jù)結(jié)構(gòu),操作系統(tǒng)這些沒(méi)? 沒(méi)學(xué)過(guò)。
9.url輸入的過(guò)程。
10.渲染過(guò)程,重點(diǎn)哪里會(huì)堵塞--->async和defer
11.DNS用的TCP還是UDP-->劫持怎么辦?-->不會(huì),但是我猜可以用http3
12.bfc
反問(wèn)我的技術(shù)棧是react,不會(huì)vue會(huì)不會(huì)造成蠻大的扣分,面試官答框架都是通的,面試也是有成本的,如果考慮會(huì)不會(huì)vue,那么也不會(huì)放你到二面。第二天約hr面。
hr面
非常輕松愉快,問(wèn)了評(píng)價(jià),還說(shuō)我很符合他們部門(mén)的招聘畫(huà)像,家在武漢,想回武漢發(fā)展,有轉(zhuǎn)正意愿,學(xué)歷也不錯(cuò)。
結(jié)果第二天接到作業(yè)幫電話,(當(dāng)時(shí)內(nèi)心想著一定是通過(guò)電話,想著總算有個(gè)offer了),結(jié)果通知該部門(mén)沒(méi)過(guò),轉(zhuǎn)部門(mén)加面,心又跌倒谷底
加面
感覺(jué)是KPI面,問(wèn)的也基本不是前端的東西,中途好幾次去關(guān)門(mén),關(guān)窗,出去一趟這些事情。我回答問(wèn)題,他是完全沒(méi)聽(tīng),我答到一半卡住了2秒,剛想到準(zhǔn)備接著回答,他來(lái)句好的,那下一個(gè)問(wèn)題。后續(xù)反問(wèn),說(shuō)他想考察的是與后端交界這部分的內(nèi)容,但我雖然確實(shí)這方面欠缺,但我也想辦法努力回答,但是對(duì)方是完全沒(méi)聽(tīng)。
后面一直催問(wèn)結(jié)果,一周后,前天打電話說(shuō)不推進(jìn)了,問(wèn)什么原因沒(méi)過(guò),說(shuō)第一個(gè)部門(mén)過(guò)了,但是怕前面的人毀約所以多放幾個(gè)進(jìn)來(lái)排序,第二個(gè)部門(mén)沒(méi)過(guò)。 我是覺(jué)得雖然你可以排序,但你沒(méi)必要放那么多人進(jìn)hr面排序,二輪技術(shù)面排序不好嗎?搞得我白高興一場(chǎng),而且hr還給我很強(qiáng)烈的我能過(guò)的感覺(jué)。
美團(tuán)第一次二面掛,第二次二面后泡了很久通過(guò)(參考前面的博客,雖然寫(xiě)的很爛)
小廠面試感受
因?yàn)槊缊F(tuán)是3天前才郵件,上一周處于一種沒(méi)offer又沒(méi)面試的狀態(tài),所以ssob上海投,約了3個(gè)小廠面。感覺(jué)ssob上還是vue居多,所以大部分也不會(huì)推進(jìn)面試,有面試也是非常簡(jiǎn)單,甚至有一家說(shuō)我賭你的學(xué)習(xí)能力能勝任工作,這部分應(yīng)該還是學(xué)歷起了作用。然后給我印象深刻的是富衛(wèi)保險(xiǎn)(外包)的面試,體驗(yàn)不錯(cuò),感覺(jué)他們組內(nèi)氛圍很好,但是后續(xù)接到美團(tuán)offer還是拒絕了。
另外一點(diǎn)就是感覺(jué)武漢和廣州這邊的職位數(shù)量還是有蠻大差距的,本來(lái)想著大廠去不了,小廠找個(gè)實(shí)習(xí)那干脆回武漢得了,還能順便回家,結(jié)果ssob上武漢前端實(shí)習(xí)都沒(méi)幾個(gè),而且要求立刻到崗+線下面試,給錢(qián)少的夸張(80-130),還是武漢大學(xué)生太多了