2018年 前端秋季校招面經

ParaSLee發表於2018-10-12

雙非本科。 提前批投了有30多家,總共加起來投了有50多家公司, 除了蘑菇街給了提前批直接面試,其他要不是轉筆試,要不是直接掛簡歷(阿里騰訊),要不就是正式批都開始筆試面試了,我老早投的沒一點動靜,也不給我轉正式批,正式批投了也不給我筆試(歡聚、虎牙等)。

8月26日左右開始投,小米8月28日投的內推,9月最後一週了才聯絡我說我是提前批面試。 除了蘑菇街和小米,其他基本上都是筆試通過後開始面試,不過也有筆試通過後不給我面試(JD、知乎)。

最早面的美麗聯合,提前批,之後就是9月第三週現場面的百度、網易、和電話面的小米,9月最後一週的oppo、美團、騰訊。 站點都是成都。


目前狀態:

  • 籤百度
  • 百度offer、百詞斬ssp(估計有實習buff加成,談薪資的時候薪資高到把我嚇蒙)、美團offer、小米小sp、美麗聯合sp,
  • 網易意向書收到了,結果人招滿了
  • 神策資料 一面掛

[TOC]

面經

美麗聯合

最早面試的一家公司,感謝蘑菇街提前批接受了我的簡歷,不然我估計會因為0面試而崩潰的。不過我蘑菇街的面經沒有可參考性,1,2面全是問的專案,3面也是比較常規的hr面。

1面 電話

問專案,中途還涉及到vue、canvas、webpack。 但是大部分時間都是問專案。

2面 視訊

問專案。

3面 Hr

標準hr面

4面 加面

面試官是非常厲害的人,好像是電商部門的技術總負責人。

讓我進行5-10分鐘的自我介紹,把學習經歷,專案和負責內容都介紹一次。

然後問了我專案中的幾個問題

還問了我怎麼處理相容性

之後就是問對前端看法,個人的打算等等

總之感覺挺輕鬆的。



神策資料

1面 視訊

忘了問的啥了,總之體驗很不好,自我介紹的時候就被打斷很多次,最後讓我手寫一個題。

最後,面試官的評價是,程式碼寫得太少了。 我:???



百度

1面 (1小時45分鐘)

  1. 介紹一下專案,把我簡歷上的專案問了一大半,哪些難點,怎麼做的,為什麼這麼做,有其他方法能實現嗎(後面這幾點大部分是我自己主動介紹的)
  2. 講專案期間還問了我Canvas,wepack,vue的問題。
  3. 講專案就佔了一半的時間,
  4. 手寫ajax
  5. vue雙向繫結
  6. vue-router原理
  7. es6有哪些
  8. let/const/var區別
  9. 箭頭函式
  10. this
  11. 出了一個相關this的題
  12. 模組化
  13. 效能優化(這裡我擴充套件了很多,然後被面試官阻止了,說夠多了)
  14. 1億個亂序數裡面找出最大的前1000個數
  15. 有什麼想問我的

2面 (1小時24分鐘)

  1. 面試官把我簡歷很仔細的看了一遍,然後問我怎麼學習的
  2. 看了哪些書 然後和和氣氣的畫風突變
  3. 手寫es6 class繼承
  4. 一道class相關的題
  5. 手寫es5 繼承
  6. 手寫偽陣列轉換為陣列(沒寫好,還出了錯) 面試官說[].slice.call 然後我說有問題,然後還暴露出我沒分清Array和[]的區別
  7. 手寫string的indexOf,不能用正則,不能用substr這些相關的方法
  8. 講講事件代理
  9. 手寫一個block函式,功能是阻止所有a標籤的跳轉事件,並輸出href的值。只要使用這個函式(在文件任意地方寫了block()),所有的a標籤的跳轉事件都要能阻止。這裡還有一個坑,就是<a><li></li></a>如果我點的是li,e.target獲取的值就是li
  10. 從url輸入內容到瀏覽器顯示 前面手寫程式碼寫得想哭,細節漏洞百出被批了幾次。居然問到了我最擅長的題,我差點沒憋住笑出來

10.1. 講了輸入值瀏覽器的不同處理

10.2. dns

10.3. arp

10.4 tcp三次握手

10.5. 中途問我為什麼要3次,不能2次

我想說tcp4次揮手的時候被阻止了,面試官說他知道我知道 10.6. 瀏覽器拿到資料後怎麼渲染

10.6.1. dom構建全流程,cssom構建全流程,渲染樹構建, (上面那些是我回答的內容)

  1. script 會阻止頁面渲染嗎,外部引入js,css放置位置的影響
  2. async和defer
  3. 用了async的js程式碼,想獲取dom結點怎麼辦
  4. domcontentloaded和onload區別
  5. domcontentloaded 相容寫法
  6. 你有什麼想問我的 x4(我:???)

3面 (1個小時20分鐘)

聊人生聊未來聊專案聊思想,聊了一個1個小時20分鐘,聊得我想吐,要在聊人生中展現出自己的能力,也是絞盡腦汁。



網易

1面 (1小時)

  1. 自我介紹
  2. 頁面白屏原因
  3. 怎麼查錯,如果有很多人一起開發呢
  4. 相容性,向下相容和不同瀏覽器相容
  5. 佈局
  6. es6
  7. 箭頭函式 作用域 還出了幾道題
  8. babel原理
  9. vue通訊
  10. vuex
  11. eggjs(專案中用到的)和koa區別
  12. http狀態碼 301,302區別
  13. url輸入到頁面顯示
  14. 外鏈css,js和img流程
  15. 怎麼學習的
  16. 未來的規劃
  17. 評價一下自己
  18. 還有什麼想問的

2面 (1個小時)

全是問專案,正好到我強項 面試官也沒懟我,我的思考挺全面的,基本上面試官的問題我之前做的時候都有考慮過,要不就是現在就能給出解決方案


3面 hr (45分鐘)

壓力hr面,面的時候感覺在被懟,沒談薪資



小米

1面 (40分鐘) 電話

  1. 自我介紹
  2. 介紹http狀態碼
  3. 304變回200
  4. http和https區別
  5. tcp三次握手
  6. webpack
  7. html5新加的內容
  8. html5的優點和缺點
  9. position的值
  10. transform和position:absolute/relative; left:200px 兩者移動元素的差別
  11. let/const/var 區別
  12. es6 class 其他想不起了 問得挺多的,但都是基礎

2面 電話

忘了,總之是技術面,很基礎

問了演算法,一共4個演算法,其中1個是檢測連結串列是否有環,1個是連結串列的環點

3面 hr

好像是hr? 更新這篇文章的時候已經過去很久,忘了



oppo

1面 (30分鐘)

  1. 自我介紹
  2. 專案中負責的內容
  3. es6新增內容
  4. polyfill
  5. 效能優化
  6. 移動端自適應
  7. 水平居中
  8. 一行文字超了以省略號表示(我還補充了多行的)
  9. canvas(專案中用上了)
  10. webpack

其他想不起了,總之很簡單


2面

  1. 自我介紹

  2. 看你是軟體工程的學生,你們學的是什麼 答:C++和 JAVA。

    2.1. 那你知道c++的@##@¥怎麼%&*¥#嗎? 答:不知道

    2.2. 那你說說@#$%^ 答:不知道

    2.3. JAVA中@#¥%&*¥#¥% 答:不知道

  3. 你們學過計網嗎,學過。 說一下Tcp3次握手。 Balabala,那你知道在這時候客戶端傳送#$%^#&*會怎麼樣嗎? 答:不知道

  4. 你們應該有學過軟體工程的一些模式吧,比如說瀑布模式,你還知道其他的嗎。 思考了一會兒,答:忘了。

  5. 那你用JS寫程式碼的時候用過一些設計模式嗎。說說看。

  6. 說一下單例模式。

  7. 有哪些方法可以實現單例模式。

  8. 然後開始聊人生了。

二面莫名其妙的居然就過了?感覺30-40%都是回答的不知道或者忘記了


3面 hr

標準hr面



美團

1面 (接近1小時)

  1. 自我介紹
  2. 5道有關this的題
  3. 手寫一個find方法,查詢物件是否有指定的屬性
  4. 計算機網路學過嗎
  5. 說一下3次握手
  6. 十萬個亂序、有重複的數,找出第K大的數。這裡討論各種演算法的時間複雜度討論得很深。

剩下的想不起了,總之有難度。


2面 (面試時間:???)

  1. 自我介紹
  2. 問了一下專案
  3. 專案中canvas做了啥
  4. get post請求區別。
  5. get請求的資料放在哪,post呢
  6. get為什麼不安全
  7. XSS是什麼(自己挖了坑)
  8. get除了能在url裡,還能在哪
  9. 為什麼要跨域
  10. 同源策略到底保護的是什麼
  11. 跨域的方法
  12. 實現一個JSONP
  13. CORS原理
  14. CORS怎麼請求。
  15. 為什麼get是簡單請求,post是複雜請求。
  16. get和post的冪等、PUT是冪等嗎
  17. 說一下你瞭解的資料結構。
  18. 說一下這些資料結構的適用場景
  19. 什麼場景使用二叉樹,為什麼要創造出二叉樹這種資料結構。
  20. 語義化一個表單(應該這個意思吧,沒太懂)
  21. table表單儲存的到底是什麼資料
  22. table和ul ol本質上區別是什麼
  23. 會做遊戲嗎    不會
  24. 讓你實現一個連連看怎麼做
  25. 你這個演算法最核心的地方具體怎麼做
  26. 為什麼這麼多大學生選擇程式設計師這種工資不是最Top,但是又很累的職業
  27. 為什麼程式設計師普遍工作時間長
  28. 為什麼井蓋是圓的
  29. 精確估計成都的小汽車數量和計程車數量
  30. 好了,你快走吧。

我:????

最懵逼的一場面試, 一面過去才沒多久,還沒從一面的難度中緩過來,面經也沒寫好,二面就來了。原本以為自己已經夠深入了,沒想到居然還能再深入, 整個二面基本上都是自己認識被不斷擊毀,全程懵逼,基本上40%-50%我都在說不知道。


3面

2面才結束不到5分鐘,就來通知了,我還以為通知我涼了,沒想到直接讓我面3面,1、2面面試官就在後面看著我,我:我為什麼過了?我是誰?我在哪?我在幹什麼?

一臉懵逼的坐下去

  1. 自我介紹
  2. JS弱型別
  3. [] + [] 等於什麼
  4. [] + ![] 等於什麼
  5. [] == ![] 結果?
  6. [] == [] 結果?
  7. 問專案
  8. 聊人生、未來規劃
  9. 你有什麼想問我的 xn

一臉懵逼的離開

4面 hr 35分鐘

標準hr面



騰訊

1面 (大約1小時)

個人感覺1面難度高於網易,低於美團

  1. 自我介紹
  2. 你用vue多還是react多
  3. 說一下vue的diff
  4. 手寫一個vue元件,元件傳參
  5. 寫一個vue的指令,比如自己寫出v-on
  6. css3動畫
  7. tcp三次握手
  8. 資料是在什麼時候傳送的
  9. 第三次握手沒收到,伺服器端收到了客戶端資料會怎樣
  10. ajax請求有哪幾種狀態,具體說一下
  11. 介紹一下csrf
  12. 怎麼防禦csrf
  13. 301和302區別
  14. 說2個用到301的實際例子(這裡我沒用到過301,我說我用過307,然後說了307的情況)
  15. 頁面渲染有哪幾種模式
  16. ie模型和w3c模型的區別
  17. 微信小程式原理
  18. 怎麼學習新技術,舉個例子(講了我學vue的過程)
  19. 60%的同學喜歡籃球,70%喜歡足球,80%喜歡排球,多少同學既喜歡籃球又喜歡足球

騰訊一輪遊



百詞斬

1面 (54分鐘) (視訊)

  1. 自我介紹
  2. 寫個氣泡排序
  3. 演算法的時間複雜度
  4. JS與其他物件導向語音的區別與優缺點
  5. 原型,原型鏈,繼承
  6. 原型繼承的優缺點
  7. 可實現3列布局的方法,我說了4種
  8. 說一下非同步
  9. setTimeout
  10. 有關setTimeout的2道題
  11. 寫個AJAX
  12. 封裝一個AJAX
  13. TCP三次握手
  14. TCP在哪一層
  15. fetch有用過嗎,沒。。
  16. 資料庫的操作
  17. 佇列和棧
  18. 實現一個連結串列
  19. 程式和執行緒
  20. 作業系統記憶體排程的解決方法,說了3個
  21. 還有什麼想問的

整體來說1面難度中規中矩,相比其他公司問的更廣一點,但是深度沒有其他公司深。


2面 (1小時10分鐘) 視訊

  1. 自我介紹
  2. 大學裡面學過哪些課
  3. 搜尋樹、B樹知道嗎
  4. hash表的特點
  5. TCP和UDP區別
  6. 怎麼選擇TCP和UDP
  7. tcp/ip協議族分哪些層,都有些什麼協議
  8. 雙向繫結
  9. 檔案路徑問題(沒能理解到問的什麼)
  10. 手寫大數相加
  11. 自己說一下自己研究過的地方,說了效能優化

3面 hr

談薪資。


相關文章