【校招面經分享】好將來-北京-視頻面試

  • 做者:阿吉
  • 整理&點評:lucifer

爲何要寫這個面經?

lucifer 說讓我寫一下秋招面經,但我很菜,一開始不想寫的。最主要的是不想暴露本身的菜,雖然羣佬都知道我比較菜。javascript

lucifer 的羣大概是我惟一一個每時每刻都能獲得響應的羣吧。很開心當時只是隨便加了一下,但認識了好多大佬,常常在羣裏問一些很沒頭腦的問題,但總有人會艾特我回答,儘量去觸摸本身的知識邊界幫我解答,你們都在交流(技術+扯皮)。前端

比較遺憾沒偷學到 lucifer 的算法能力,也沒能白嫖到小漾的美圖。在 lucifer 羣裏開羣語音,還有幸白嫖過川川(若川大佬)的聲音 hhhhhh。大概我挺但願小漾看到這個文章能主動點曬照一下 hhhh(感受次日我就沒了)。java

面試體驗

好將來的四位面試官給予的面試體驗很舒服。四面面試官說話一直用「您」。四面面試快結束的時候:node

  • 我:「咱們的時間價值並不對等,因此很感謝您願意抽時間面試我」
  • 面試官:「不,咱們的時間是對等的,咱們今天只是在平等的交流」。

好將來的面試體驗多是目前秋招面試最舒服的,由於平時喜歡看不少閒書(面試不多會問的那種),把那些知識都有機會和麪試官進行了分享。web

面試官的問題用 Q 表示, 個人回答用 A 表示,序號表示第幾個。 好比 Q5 表示面試官的第五個問題, A8 表示我對第八個問題的回答。

一面(男)

面試內容

  • Q1: 聊項目,聊實習公司,問何時開始學前端
  • A1: 大二
  • Q2: 說一下排序算法。手撕冒泡,快排及其優化
  • A2: blabla
lucifer 小提示: 要能夠手撕才行哦。
  • Q3: TCP 和 UDP 區別。TCP 爲何是可靠的?
  • A3: 《計網 自頂向下》,同時說了應用場景。
  • Q4: 三次握手,四次揮手
  • A4: 過程,字段,爲什麼兩次不行,各自做用。SYN 半鏈接攻擊。
  • Q5: 談一下 HTTP
  • A5:
    詳細說 HTTP 1.0 1.1 2 3
    細說文本格式和二進制格式(這個很感謝 feiker 大表哥在羣裏說了下),以及 HPACK,應用層和傳輸層的隊頭阻塞,多路複用和多路分解
    瞎扯了一下 302 303 307 在 RFC 規範中的發展歷史,實際上是跟瀏覽器大戰年代相關的。
  • Q6: 瀏覽器緩存
  • A6:
    四級:Service Work, Memory Cache, Disk Cache, Push Cache
    HTTP 控制的緩存位於 Disk Cache,即強緩存和協商緩存。兩者中間的啓發式緩存。
  • Q7: CDN
  • A7: content dispatch newwork。 《計網 自頂向下》
  • Q8: 從 URL 到瀏覽器渲染,僅圍繞 HTTP 相關展開
  • A8: 由於僅涉及 HTTP,除了常規回答,談了下 webkit 裏的三類資源加載器,以及網絡棧。
  • Q9: 編譯性語言 和 解釋性語言的區別
  • A9: java,js。引伸 JVM 和 V8。以及 V8 在早些年間拒絕採用中間碼(《了不得的 nodejs》那本書比較老,裏面就是無中間碼),後來又採用了。其實最開始的緣由就是考慮到移動端存儲量。
  • Q10: 單線程的緣由,好處
  • A10: JS 多線程對 DOM 的壞處。引伸 webkit 多線程,看面試官比較感興趣,又分析了瀏覽器的多進程架構,以及 Renderer 進程的四個配置項。

二面-男

面試內容

  • Q1: 聊項目,前端倒計時,IOS 兼容等
  • A1: ...
  • Q2: 各類排序的時間複雜度
  • A2: ...
lucifer 小提示: 不要死記硬背。
  • Q3: 手撕代碼
function tpl(template, data){

}
// 輸入
tpl('<div class={%className%}>{%name%}</div>', {className:'hd', name:123})
// 輸出
<div class="hd">123</div>
// 面試時編碼思路:根據瀏覽器的詞法分析去作,用stack。但存在問題。
  • A3:...
  • Q4: 看代碼說輸出,做用域
var a = 2;
function fn1() {
  var a = 1;
  console.log(this.a + a);
}
function fn2() {
  var a = 10;
  fn1();
}
fn2();
// 扯了一下this指向,以及C++中做用域的_variable表默認添加。
  • A4: ...
  • Q5: 你對閉包的理解
  • A5: 函數執行的保護機制。圍繞函數執行機制(後來 lucifer 男神講能夠從詞法做用域說,但畢竟是面試,感受從函數執行來說比較 ok),結合 V8 生成 AST 角度去談何爲閉包。具像爲做用域鏈,及其 2 個表象。優缺點。理論應用:在 Vue 中的應用 Dep(),React 中的應用 Redux dispatch,設計模式中單例模式。項目應用:H5 前端自擬倒計時 destroyed 銷燬引用。

三面-女

面試內容

  • Q1: 自我介紹
  • A1: 叫 AJ,來自 X,能幹活。
  • Q2: 聊點你的學校經歷吧
  • A2: 在校職務...
  • Q3: 爲何選擇前端
  • A3: 通過大一嘗試過 java,py,cnn 後決定,前端做爲當下的生存技能。興趣不侷限於此。
lucifer 小提示: 不要把本身侷限到前端。
  • Q4: 爲何不如今就去學後端
  • A4: 我明白本身每一個階段想要的是什麼,當下秋招的我應該找一份匹配本身的工做。
  • Q5: 將來三年的職業規劃
  • A5: 業務崽。
  • Q6: 實習公司,對比百度、騰訊、小米,最不喜歡哪個?
  • A6: 從不一樣的層面去說最喜歡哪家。
  • Q7: 你以爲你的缺點有什麼
  • A7: 不喜歡跟人爭執,浪費時間且無趣。
  • Q8: 爲何會投咱們公司,瞭解咱們嗎
  • A8: 很好的朋友在開課吧(然哥),給我說好將來還挺不錯的。秒投了。
  • Q9: 咱們的業務有...你喜歡哪一個業務啊
  • A10: 直播吧

四面-男

面試內容

  • Q1: Vue 那種左右界面,中間的豎線能夠滑動,左右佈局跟着變化,怎麼去作優化,能夠從哪些角度觸發
  • A1: 不會。嘗試從 Vue Object.freeze() 和 提高圖層角度去說。
  • Q2: GPU 硬件加速渲染說下原理
  • A2: 不會。從 CSS3 觸發的角度說了下。
  • Q3: HTTPS 性能損耗在哪裏?
  • A3: TLS 握手。從《計算機網絡 自頂向下》那本書裏提的角度簡單說了下。同時認爲非對稱加密算法對服務端資源消耗比較大。
  • Q4: 你如何去解決前端人員被需求壓滿,而後作業務以爲沒有技術成長
  • A4: 不侷限在功能點的開發,真正理解業務,理解業務流程中的數據流向以及坑點。當在當前環境遇到技術瓶頸要跳槽時,帶着已有經驗去下一個環境。
  • Q5. 談談 WebSocket,而後怎麼去改造。
  • A5: 簡單說了一點理論,直言沒實踐過。
lucifer 小提示: 能夠本身實現一個 WebSocket 玩玩就啥都知道了。
  • Q6: 直播業務中,經常使用的協議是什麼
  • A6: 僅知道 webRTC。
  • Q7: 海量數據找出最大的 K 個,怎麼找?時間複雜度是多少?
  • A7: lucifer 以前的文章應該有過,沒記牢固。簡單說了下。
lucifer 小提示:咱們只須要創建一個大小爲 K 的小頂堆,N 個數分別入堆,最後堆頂的元素就是第 K 大的。 時間複雜度 $O(NlogK)$
  • Q8: 瞭解好將來嗎?爲何要來?
  • A8: 作教育的。我哥推薦的。

PS: 面試白菜起步。SP 面是四面。面試

lucifer 點評

因爲是校招的緣由,整個面試過程比較注重的是基礎知識以及思考和學習方式。而且能夠看出側重點依然是:算法

  • 網絡(TCP,DNS,HTTP,HTTPS,瀏覽器緩存等)
  • 瀏覽器渲染(GPU 硬件加速, webkit 原理等)
  • 數據結構與算法(排序算法,複雜度分析,堆的應用等)

對於每個部分,咱們首先要作的是創建大局觀,這樣即便錯,也不會錯到哪去。大局觀創建好了,至關於基本的知識框架有了,接下來就是填充知識框架了。這個階段最主要的就是鞏固複習和查缺補漏。通過這樣的一個學習,相信你也可以在面試中嶄露頭角,得到心儀的 offer。後端

你們也能夠關注個人公衆號《腦洞前端》獲取更多更新鮮的前端硬核文章,帶你認識你不知道的前端。設計模式

公衆號【 力扣加加
知乎專欄【 Lucifer - 知乎瀏覽器

點關注,不迷路!

相關文章
相關標籤/搜索