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