前端三段面試經(jīng)歷(字節(jié)、滴滴、虎牙)
字節(jié)
一面
剛開始就問我的項目,問得很詳細。
webpack 提高構(gòu)建速度的方式
loader 輸入什么產(chǎn)出什么 ?
webpack 原理
webpack 動態(tài)加載的原理
webpack 熱更新
如何寫一個 webpack plugin
AST 的應(yīng)用
如何解析一個 html 文本,還是考 AST
babel 原理,怎么寫 babel 插件
如何設(shè)計一個沙盒 sandbox ?
小程序的 API 做了什么處理,能夠做到全局變量的隱藏,如果是你,怎么設(shè)計 ?
實現(xiàn)顏色轉(zhuǎn)換 'rgb(255, 255, 255)' -> '#FFFFFF' 的多種思路。
提供一個數(shù)字 n,生成一組 0~n-1 的整數(shù),打亂順序組成數(shù)組,打亂幾次,如何能夠看起來平衡,說出你能想到的所有方法。
二面
業(yè)務(wù),業(yè)務(wù),還是業(yè)務(wù),項目復(fù)盤有沒有更好的解決方案。
如何處理一個重大事故 bug
監(jiān)控體系
虛擬 dom 有什么好的地方? 框架為什么要設(shè)計虛擬 dom?
webpack 的缺點,讓你設(shè)計一個新的構(gòu)建打包工具,你會怎么設(shè)計?
在線文檔編輯,如何處理兩人的沖突,如何展示,考慮各種場景
excel 文檔沖突高級處理,文章沖突呢?是上個問題的深化。
三面
算法題:從數(shù)組 [1, 5, 8, 10, 12] 中找到兩個數(shù)和為 9,返回 [1, 8] 這樣的結(jié)果。
算法題:從數(shù)組 [1, 5, 8, 10, 12] 中找到三個數(shù)和為 19,返回 [1, 8, 10] 這樣的結(jié)果。
算法題:給定一個無序的整數(shù)數(shù)組,找到其中最長上升子序列的長度。
-----------------------------------------------------------------------------------------------
滴滴
一面
webpack 原理
babel 原理
虛擬 DOM 的理解
項目里如何做的性能優(yōu)化
寫過webpack loader 或者插件嗎
講講你寫的 babel 插件
二面
redux 的原理
redux 做狀態(tài)管理和發(fā)布訂閱模式有什么區(qū)別
react-redux 的原理,是怎么跟 react 關(guān)聯(lián)起來的
了解多端的原理嗎?
http 與 tcp 的關(guān)系
tcp 可以建立多個連接嗎?
介紹一下為什么要有 三次握手,四次揮手
寫過 babel 插件嗎?用來干啥的?怎么寫的 babel 插件
知道怎么轉(zhuǎn)化成 AST 的嗎?
研究過 React 的運行時嗎?
職業(yè)規(guī)劃。
三面
項目介紹
說一下你的項目有哪些復(fù)雜的點,以及怎么解決的
你們的業(yè)務(wù)組件庫有多少個,是什么樣的組件
權(quán)限組件是怎么設(shè)計的
會node 嗎?
介紹一下你對中間件的理解
怎么保證后端服務(wù)穩(wěn)定性,怎么做容災(zāi)
怎么讓數(shù)據(jù)庫查詢更快
數(shù)據(jù)庫是用的什么?
為什么用 mysql
希望滴滴能提供給你什么?
四面
介紹一下項目的難點以及怎么解決的
自己有什么技術(shù)上的優(yōu)勢
最近在研究什么技術(shù)?
職業(yè)規(guī)劃
移動端的業(yè)務(wù)有做過嗎?
當業(yè)務(wù)重的時候怎么安排時間?
-----------------------------------------------------------------------------------------
虎牙
一面
http 的 get 和 post 區(qū)別
緩存策略
https 的握手過程
http2 的特點
weak-Set、weak-Map 和 Set、Map 區(qū)別
mvvm 模型和 mvc 模型區(qū)別
如何實現(xiàn)一個 mvvm 模型
為何你用 mobx 重構(gòu)了 saga,說說兩者之間的區(qū)別
說說 vnode 的了解
講講 webpack 的性能優(yōu)化
有寫過 plugin
了解 webpack-dev-server 的 HMR 實現(xiàn)原理嗎
手寫一下防抖和節(jié)流
二面
你做過直播,能介紹一下 webRTC 或者現(xiàn)在使用直播方案嗎
編碼方面有了解過嗎,能解釋一下碼率嗎
編碼方面有了解過嗎,能解釋一下碼率嗎
RGB 和 YUV 區(qū)別
有了解過哪些直播協(xié)議
flv 和 mp4 區(qū)別有了解過嗎
MediaSource 規(guī)范有了解過
三面
webSocket 和 ajax 的區(qū)別
xss、csrf 有了解過嗎,如何防范
有了解過 React 的 fiber
能簡單介紹一下 react 執(zhí)行過程嗎
能介紹一下 hook 嗎
情景題,做一個直播彈幕
------------------------------------------------------------------------------------------
這些就是三個大廠的面試經(jīng)歷, 我還整理了一些其它小伙伴分享的大廠面試題,包含但不僅限于:HTML和CSS、HTML5和CSS3、JS基礎(chǔ)、Ajax、流行框架、十、Node.Js、前端概括性問題等,由于篇幅問題內(nèi)容沒有全部發(fā)出來,有需要的可以找我要。
結(jié)束語
無論做什么,不止前端,都應(yīng)該要有自己的想法和思考,這樣子才能把事情做好,做得更深。否則這就像一場夢,醒來還是很感動。希望各位讀者,看上面的題目并不是背答案,而是理解它,并能活用,以后做類似的事情,有參考的思路。如果遇到和我同一個面試官,題目當然是不完全一樣的,此時需要臨場發(fā)揮自己的積累和靈活運用了。
最后再補充一點,如果你見過了普遍情況,了解到了普遍現(xiàn)象,那要是什么都和人家一樣,最后不就是也成為普遍水平了嗎?如果想脫離當前現(xiàn)狀,實現(xiàn)突破,那么目標應(yīng)該是成為有個性、有特色的、有區(qū)分度的人,成為一名不一樣的前端,不一樣的人。