金三银四的腾讯、阿里、字节等大厂前端社招面经
大家好,我是若川。最近金三銀四,今天分享一篇騰訊、阿里、字節(jié)等大廠的前端社招面試經(jīng)驗(yàn)的好文,相信看完會(huì)有所收獲。也歡迎點(diǎn)擊下方卡片關(guān)注或者星標(biāo)我的公眾號(hào)若川視野
作者面了將近一個(gè)月,目前還沒掛過,但由于各種因素,又都拒了...這也許就是大佬吧。以下是正文~
目前工作快四年,年后投了一波簡歷,這里整理了一下新鮮出爐的前端面經(jīng),需要的可以自取。
騰訊
一面
寫一個(gè) LRU 緩存函數(shù)
寫個(gè)防抖和節(jié)流函數(shù)
你們服務(wù)是怎么部署的?Node Agent 做了什么工作?
Grpc 的優(yōu)缺點(diǎn)?
http2 的相關(guān)特性?
viewport 和移動(dòng)端布局方案
實(shí)現(xiàn)一個(gè) compose 函數(shù)
開發(fā)中有遇到過比較難定位的問題嗎?Node 內(nèi)存泄露有遇到過嗎?
二面
react ssr 是在什么場景下做的?
react ssr 雙端怎么做構(gòu)建的?區(qū)別在哪里?
有沒有做過同構(gòu)組件?服務(wù)端和客戶端怎么同步狀態(tài)的?
render 和 renderToString 的底層實(shí)現(xiàn)上的區(qū)別?
客戶端怎么處理 JS 事件失效的問題?客戶端不重新加載 JS 的情況下怎么實(shí)現(xiàn)?
做服務(wù)端渲染的時(shí)候有沒有遇到過比較難的點(diǎn)?
react ssr 和 ejs 性能的差異?
服務(wù)回滾是怎么做的?上線流程是怎樣的?k8s 回滾、拉取以前的鏡像
webpack plugin 的原理是什么?
plugin 中有異步請求會(huì)阻塞后面的 plugin 嗎?
做過哪些 webpack 的性能優(yōu)化?
hard-source-webpack-plugin 是怎么做緩存的?修改文件后會(huì)怎么樣?
parallel 的原理是什么?多個(gè)子進(jìn)程怎么通信?
你們 webpack 是怎么做拆包的?
服務(wù)端監(jiān)控是怎么做的?服務(wù)有上報(bào)過什么指標(biāo)?
Node 服務(wù)怎么去定位 CPU 占用暴漲的情況?怎么去定位內(nèi)存泄露?
編寫 grpc 服務(wù)和 http 服務(wù)的區(qū)別?
做過哪些 react 相關(guān)的優(yōu)化?函數(shù)組件怎么實(shí)現(xiàn) shouldComponentUpdate?
如果有一個(gè)非常大的 react 頁面,我想優(yōu)先渲染某一部分,這該怎么做?
react 函數(shù)組件和 class 組件里面 state 的區(qū)別?
react useEffect 對應(yīng) class 組件的哪些生命周期?
前端的監(jiān)控是怎么做的?除了 sentry 還做了其他異常處理嗎?
三面
講一下你做的比較復(fù)雜的項(xiàng)目?以及你在項(xiàng)目中擔(dān)當(dāng)了什么角色?
你是怎么看待現(xiàn)在各種造輪子的?
有一個(gè)一億長度的字符串,怎么存儲(chǔ)設(shè)計(jì)可以讓它更好去查詢、修改?
怎么優(yōu)化 H5 讓它可以在 300ms 之內(nèi)打開?
你們 WebView 加載一般耗時(shí)多久?
你們?yōu)槭裁磸?Python 重構(gòu)到 Node?好處是什么?
你是怎么看待做后臺(tái)管理系統(tǒng)的?很多人覺得它沒有難點(diǎn),你覺得呢?(問這個(gè)問題是因?yàn)槲椰F(xiàn)在在做后臺(tái)管理系統(tǒng))
總監(jiān)面(有點(diǎn)兒記不清了)
新加坡和深圳內(nèi)網(wǎng)是怎么連通的?
未來的職業(yè)規(guī)劃是什么樣的?
對當(dāng)前新的技術(shù)有了解嗎?
對客戶端知識(shí)有了解嗎?
為什么要離職?
拒了,崗位不是很喜歡
螞蟻
一面
React setState 怎么獲取到更新后的值?異步函數(shù)中為什么 setState 會(huì)立即更新?
做過離線包嗎?H5 離線包的原理?客戶端根據(jù)什么攔截靜態(tài)資源請求?
JS Bridge 的原理?你們這套方案的s優(yōu)缺點(diǎn)?
怎么判斷 webview 是否加載完成?
怎么實(shí)現(xiàn) App 頭部和頁面的背景漸變?
PC 端做過比較有意義的項(xiàng)目?
微前端子應(yīng)用之間怎么通信?有沒有了解過業(yè)界的一些方案?
二面
你們部署的 Jenkins 是怎么做的?
JS Bridge 原理?有沒有安全漏洞?
有沒有做過和安全相關(guān)的?waf 主要做了什么?
有沒有做過埋點(diǎn)和性能上報(bào)相關(guān)?
如果你們用一個(gè)第三方的上報(bào)庫,但頁面加載這個(gè) JS 失敗了,還想上報(bào)該怎么辦?
實(shí)現(xiàn)兩個(gè)大數(shù)相加
實(shí)現(xiàn) DOM 字符串轉(zhuǎn)虛擬 DOM 對象(不能用 DOM 相關(guān)的 api)
有木有做過你覺得比較困難的項(xiàng)目?
三面
管理系統(tǒng)都做了哪些業(yè)務(wù)?有沒有做一些提高開發(fā)效率的東西?
常用的組件是哪個(gè)?解決了什么問題?
平時(shí) Node 都用來做什么?怎么實(shí)現(xiàn)的?
SSR 的實(shí)現(xiàn)原理是什么?
項(xiàng)目中遇到的技術(shù)難點(diǎn)有哪些?
你覺得你們比 lazada 做得更好是哪些原因?
四面(略)
五面(略)
拼多多
一面
有沒有做過比較復(fù)雜的頁面?攜程的 React-imvc 做了什么?
使用 Redux 的好處,以及和 Mobx 的區(qū)別
對 React 最新特性有了解嗎?class 組件和函數(shù)組件的區(qū)別?
useState 為什么不能放到條件語句里面?
實(shí)現(xiàn)一個(gè) Promise.all
React SSR 是怎么實(shí)現(xiàn)的?
有用過代碼規(guī)范相關(guān)的嗎?Eslint 和 Prettier 沖突怎么解決?
實(shí)現(xiàn)一個(gè)數(shù)組轉(zhuǎn)樹形結(jié)構(gòu)的函數(shù)
二面
說幾個(gè)你覺得足夠復(fù)雜的項(xiàng)目?
你是怎么去做 React SSR 的?
有沒有做過性能優(yōu)化相關(guān)的?
實(shí)現(xiàn)一個(gè)深拷貝
實(shí)現(xiàn)一個(gè)二叉搜索樹轉(zhuǎn)鏈表的方法
拒了,不想去賣命
商湯
一面
在工作中,主要是做什么內(nèi)容?
有用過 lerna 嗎?多個(gè)項(xiàng)目之間共用的東西怎么共享?
講一講微前端是怎么做的?怎么獨(dú)立部署?子應(yīng)用通信怎么做?
webpack 構(gòu)建流程是怎樣的?
webpack loader 和 plugin 的原理和區(qū)別?
webpack 熱更新原理?
webpack 怎么做分包?
做過 webpack 性能優(yōu)化嗎?有用過 rollup 嗎?
react-imvc 是什么?它做了什么?
react 和 react-dom 的區(qū)別是什么?
redux 和 mobx 的區(qū)別和優(yōu)劣?用過 redux-saga 嗎?
react diff 的復(fù)雜度,以及 react diff 的原理
react class 組件和 hooks 的區(qū)別?
什么是 TS 泛型?
從輸入 url 到頁面展示經(jīng)過了哪些步驟?
講一下重繪和回流
知道 BFC 嗎?使用場景有哪些?
怎么判斷是否為數(shù)組?
頁面卡頓怎么去定位?
數(shù)組有10萬個(gè)數(shù)據(jù),取第一個(gè)和取第10萬個(gè)的耗時(shí)多久?
有用過 canvas 相關(guān)的嗎?
JS 垃圾回收機(jī)制?怎么定位 Node 內(nèi)存泄露問題?
你是怎么理解前端的?
工作中遇到過最難的問題?有沒有什么讓你自豪的項(xiàng)目?
周末你都在做什么?學(xué)習(xí)前端的途徑是什么?
其他公司面的差不多了,這個(gè)后續(xù)面試就都拒了
字節(jié)
一面
tcp 和 udp 的區(qū)別和使用場景?
quic 基于 udp 怎么保證可靠性?
講一下同源策略和跨域方案?CORS 的幾個(gè)頭部是什么?
講一下 react fiber?
vue 雙向綁定原理?
redux 和 mobx 的區(qū)別和使用場景?
typeof null?null instanceof Object?
typeof 可以判斷哪些類型?instanceof 做了什么?
實(shí)現(xiàn)一個(gè) bind 函數(shù)
求數(shù)組里面最大連續(xù)項(xiàng)的和
event loop
二面
怎么優(yōu)化 h5 的加載速度?
離線包怎么更新?怎么知道需要打開哪個(gè)離線包?
js bridge 通信原理?
怎么實(shí)現(xiàn) h5 頁面秒開?
明明不是同一個(gè)語言,為什么 js 和 native 可以通信?
怎么實(shí)現(xiàn) js bridge 跨多個(gè) app 共用?
grpc 相比 http 的優(yōu)勢?
rpc 的調(diào)用流程?前端怎么調(diào)用 grpc 的?
為什么要用 grpc?
服務(wù)發(fā)現(xiàn)為什么用 ip,而不用域名?
怎么做 DNS 預(yù)解析?
怎么實(shí)現(xiàn)移動(dòng)端的布局?
iOS 下軟鍵盤輸入框遮擋遇到過問題么?怎么解決頂不起來的問題?
實(shí)現(xiàn)兩個(gè)大數(shù)相加
求一個(gè)數(shù)組最大子項(xiàng)的和,要求這些子項(xiàng)在數(shù)組中的位置不是連續(xù)的
常用的 react hooks 方法
useState 怎么做緩存的?
react fiber 是什么?
怎么解決 useState 閉包的問題?
useReducer 比 redux 好在哪里?
三面
做過哪些公共組件?DatePicker 怎么實(shí)現(xiàn)的?難點(diǎn)在哪里?
組件封裝有哪些原則?
組件數(shù)據(jù)和 UI 怎么分離?
有沒有做過一些提高工作效率的東西?
有沒有了解過拖拽?覺得它有哪些難點(diǎn)?
有沒有做過優(yōu)化相關(guān)的?webpack 做了哪些優(yōu)化?
cache-loader 和 hard-source-webpack-plugin 的區(qū)別是什么?
最近遇到的比較難的項(xiàng)目是什么?你們服務(wù)是怎么部署的?
Puppeteer 可以用來做什么?
總結(jié)
面試挺累人的,每天下班后趕回家面試,有時(shí)候干脆找個(gè)會(huì)議室偷偷摸摸面試。面了將近一個(gè)月,目前還沒掛過,但由于各種因素,又都拒了。。。現(xiàn)在又要開始新一輪的面試了,祝自己好運(yùn)吧。
最近組建了一個(gè)江西人的前端交流群,如果你也是江西人可以加我微信 ruochuan12 拉你進(jìn)群。
常駐推薦閱讀
我在阿里招前端,我該怎么幫你?(現(xiàn)在還可以加模擬面試群)
如何拿下阿里巴巴 P6 的前端 Offer
如何準(zhǔn)備阿里P6/P7前端面試--項(xiàng)目經(jīng)歷準(zhǔn)備篇
大廠面試官常問的亮點(diǎn),該如何做出?
如何從初級到專家(P4-P7)打破成長瓶頸和有效突破
若川知乎問答:2年前端經(jīng)驗(yàn),做的項(xiàng)目沒什么技術(shù)含量,怎么辦?
如何準(zhǔn)備20K+的大廠前端面試
常駐末尾
你好,我是若川,江西人~(點(diǎn)擊藍(lán)字了解我)歷時(shí)一年只寫了一個(gè)學(xué)習(xí)源碼整體架構(gòu)系列?有哪些必看的JS庫:jQuery、underscore、lodash、sentry、vuex、axios、koa、redux
關(guān)注若川視野,回復(fù)"pdf" 領(lǐng)取優(yōu)質(zhì)前端書籍pdf,回復(fù)"1",可加群長期交流學(xué)習(xí)
我的博客地址:https://lxchuan12.gitee.io?歡迎收藏
覺得文章不錯(cuò),可以?分享、點(diǎn)贊、在看?呀^_^另外歡迎留言交流~
小提醒:若川視野公眾號(hào)面試、源碼等文章合集在菜單欄中間【源碼精選】按鈕,歡迎點(diǎn)擊閱讀,也可以星標(biāo)我的公眾號(hào),便于查找
總結(jié)
以上是生活随笔為你收集整理的金三银四的腾讯、阿里、字节等大厂前端社招面经的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Taro+react开发(35) 实现拖
- 下一篇: 前端学习(3299):自定义hook