小米-小米應用商店(過)css
一面前端
小米的面試官給人的感受很親切很真誠,是一個體驗很不錯的面試。vue
css 實現圖片自適應寬高node
講 flex,手寫出 flex 經常使用的屬性,而且講出做用react
BFC 是什麼webpack
項目裏面的前端鑑權是怎麼實現的?es6
vue 裏面的虛擬 dom 是怎麼回事?web
vue 雙向綁定講一講面試
手寫函數防抖和函數節流算法
講講經常使用的 es6 語法,好比 let、promise、class 等等
瀏覽器渲染過程,迴流重繪等等,load、DOMContentLoaded 等等事件的觸發順序
從小米應用商店裏面隨便找了一個需求讓我現場實現,寫僞代碼
二面
講項目裏面的鑑權和圖片懶加載怎麼實現的
講 vue-lazyloader 的原理,手寫僞代碼
講 express 框架的設計思想
線上日誌是如何處理的
講事件循環
講 nodejs 的 eventEmitter 的實現
三面
講項目裏面作的事情
講 vue 的響應式原理、依賴收集、監聽數組、虛擬 dom 等等
講 express 的中間件系統是如何設計的
現場從小米應用商店中找出一個需求現場實現,說思路,寫關鍵的代碼
四面
講 vue-lazyloader 源碼以及設計
使用 es5 實現 es6 的 class
websocket 握手過程
瀏覽器的事件循環和 nodejs 事件循環的區別
百思編程(過)
這個公司是獵頭推薦的,CEO 比較強勢,也算比較有趣。
一面
跨域以及解決辦法
手寫一段小算法
JavaScript 的 sort 方法內部使用的什麼排序?
二面
這一面是 CEO 面,主要問了個人職業規劃等等問題,在我沒有表現出很強的要去該公司的意願後,直接給我送走了…
ponyAI-基礎架構(過)
一面
講項目裏面幹了啥
vue-lazyloader 怎麼實現的
vue 的響應式系統、虛擬 dom
函數式編程
手寫了一個算法題
二面
這輪面試時從美國打電話過來的,過後才知道是 Google 的前端…
講講項目裏面作了什麼
vue 原理,和 react 的區別(其實我沒怎麼用過 react)
JavaScript 異步的處理方式,現場出了一個問題,使用 promise 實現
三面
講項目模塊規劃、項目如何部署、如何優化等等
手寫函數的防抖
手寫一道算法題
四面
講講項目
手寫一道算法題
洋錢罐(過)
一面
講項目
前端持久化的方式、區別
vue-lazyloader 的原理
怎麼配 webpack
手寫 vue 雙向綁定
講 es6 的一些特性,而且現場出了幾個代碼片斷,說結果
手寫一道算法題
http 狀態碼
二面
講項目
vue-router 的原理
項目中怎麼用的 webpack,怎麼優化
講 express 的設計原理
手寫一道算法題
創新奇智(過)
一面
講項目
手動實現 parseInt
二面
這一面竟然遇到了前同事…寫了一些筆試題,問了一些問題!
三面
講 tcp/ip 網絡層、三次握手,爲何不能兩次握手
講 vue 原理
手寫一道算法題
猿輔導(跪)
猿輔導好像總共就一面,期間一些實現方式和麪試官有爭議(沒有衝突)。
一面
手寫 vue 的 mixin 方法
手寫 promise 的 all 方法
現場出了一個移動端的小需求
搜狐-垂直媒體部門(過)
一面
講項目
項目裏面用 nodejs 作了啥
抽取了哪些 vue 組件
二面
講項目
手寫實現 promise
騰訊-地圖(跪)
騰訊兩個部門面試都會先作一套筆試題,筆試題基本就是一些常見的前端問題以及算法題
三面
講項目,對項目提了一些問題
怎麼判斷一個點是否在圓形內、正方形內
對筆試題
騰訊-每天快報(跪)
也是先作了一套筆試題,可是使人尷尬的是,面試官以爲我快排寫錯了,然而我只是在原地快排沒有申請額外空間…
筆試題
沒了
百度-百度雲(過)
這個部門今年聽說升爲一級部門了,好像還挺不錯的~
一面
講項目
vue 響應式原理,什麼是 mvvm
es6 使用過的特性
flex 常見的屬性
css 選擇器的優先級
抽取過哪些 vue 組件
二面
講項目
express 設計原理,面試官對動態路由匹配一直追問下去,可是這裏的源碼設計我確實是忘了,一路討論下去扯到了字符串的前綴樹…
實現一個事件發佈訂閱類,其實就是 eventEmitter
三面
三面是山大老學長,聊了一些業務上的事情~
搜狗-手機搜狗(過)
搜狗一面的體驗比較差,面試官給人的感受不太好…
一面
講項目
事件循環
回調函數的壞處
vue 裏面哪兒不會用到雙向綁定
二面
忘了…
快手-商業化(過)
一面
講項目
如何抽取公共組件的
vue 的響應式原理
如何實現一個可設置過時時間的 localStorage
實現一個發佈訂閱系統,包括 on、emit、off 等等
二面
一道智力題
軟件工程思想、設計模式等等
async/await 代碼片斷,說輸出結果
今日頭條-廣告系統(過)
一面
講項目
講 lazyloader 實現
用 docker 作了什麼
用 webpack 作了什麼
手寫一個算法題
講 flex
vue 響應式原理
es6
二面
JavaScript 異步
優化項目
vue 原理,包括計算屬性、依賴收集等等
用 JavaScript 的異步實現 sleep 函數
算法題
三面
手寫快排,時間複雜度,優化
手寫實現 jsonp
項目部署,線上問題等等
websocket 握手過程
四面
對 vuex 的理解,單向數據流
設計一個單點登陸的系統,相似阿里系那種
手寫一個算法
五面
實現一個聯想搜索組件
手寫函數防抖和節流
OPPO 成都研發中心(過)
一面
講項目
講 vue 的 響應式系統,講了很久,從渲染 watcher 到虛擬 dom,面試官還跟我討論了很久
忘了
二面
講項目
忘了
百詞斬(跪)
首先會在線作一道算法題,挺簡單的,百詞斬感受掛的稀裏糊塗的…
一面
websocket 握手過程
tcp/ip 網絡層,http 的特色
http 強行使用 udp 能實現嗎?
vue 原理
webpack 熱更新原理,使用過的插件
原型、閉包、跨域
手寫了一道算法題
爲何面這麼多公司
由於我是實習直接轉正的,也沒參加過秋招,因此對本身在市場上是個怎樣的實力沒有一個清晰的瞭解,並且我也想多瞭解一下其餘公司在作什麼,因而就儘可能的多面,不過說實話面試確實挺累的。
如何準備
首先前端基礎要過關,掌握牢靠!
其次,由於我是在小廠,因此可能項目複雜度沒那麼高,我就儘可能把手頭上用到過的東西都搞明白設計原理,好比 vue、express、vue-lazyloader、promise 等等,平時也會造一些輪子,其實這些對業務開發都是有好處的,起碼可讓你知道本身在寫啥。 最後,計算機基礎也是拋不開的,LeetCode 刷 200 題左右,常見的排序、搜索、樹遍歷算法都要會,並且以這幾個爲基礎的變形也要能看出來。
還有就是面試的時候的一些技巧,由於我自己表達能力還行,面試基本不緊張,說說笑笑也就過去了,以前在公司也當過一年的面試官,這方面發怵的同窗能夠作一些相關的準備。