引言
什麼,你說你簡歷都不知道怎麼寫,看面試題有什麼用?css
戳下面這個連接看看吧, github.com/jeoy/its-mehtml
我就是拿着這個簡歷去面試的前端
對於項目的內容,歡迎star, 歡迎issue,歡迎PRvue
美團
一面node
- app相關:灰度發佈,如何保證穩定性
- 盒模型
- 手寫css佈局問題
- spa應用設計問題
- 路由相關
- vue數據綁定原理
- 多路複用
- ipv6
二面react
聊項目內容,講內存泄漏,詞法做用域和何時閉包會引發泄漏(GC機制相關)jquery
講了最近本身在作的一點開源, 而後我(機智)的聊到了我發現的一個坑,而且發了stackoverflow, 貼了jsfiddle, 讓面試官打開看...webpack
issue地址 面試官看完表示頗有趣,他也不知道。git
三面es6
聊項目內容:
- 講react-native中嵌入webview可能存在的性能問題,通訊方式。
- 多項目管理存在的問題,後端接口不分web和mobile的話, 前端web和mobile出現了model不一致,後端如何作接口兼容。
用過redis嗎, 簡單寫一個LRU
快手
一面
不得不說此次一面是最長的一次面試了。。。
上來先是紙上寫題目
- 連等那個題
- 相同名稱樣式優先級問題
- 詞法做用域問輸出
- 原型原型鏈調用輸出問題,讓簡單畫了原型圖
- let 和 var ,function聲明提高輸出
- parseInt那個題
- 知道有哪些css長度單位,分別是什麼意思
- node事件循環輸出結果,列了一堆setTimeOut,setImmediate, process.nextTick, promise.then 這種,而後問輸出順序,考察idle 觀察者, IO觀察者,check觀察者的內容和執行順序。
- 解釋BFC,IFC,FFC
- 理解a11y
- node垃圾回收策略
- 死鎖和產生的必要條件
- 編程題,實現三個函數,知足two(add(one())) 輸出3, one(add(two())) 輸出3.
- 算法題,輸入一個數組,輸出一個數組,使原數組的某個數在輸出的數組中的每一個位置上等機率的出現。 (原地洗牌的算法),
- 寫完8後讓解釋緣由,問若是return nums.sort(() => (Math.random()*2 - 1))可不能夠,爲何
- 寫一個cacheRequest, 相同的請求參數只向網絡請求一次
問答
- vue收集依賴的過程
- vue的發展方向(下個版本的優化)
- 如何作離線應用,service worker瞭解嗎
- 瞭解小程序嗎,說一下優勢和技術方案
下面是項目相關的
- 作了什麼有意思項目, 後續講到主題的動態改變,問css native var的兼容性如何,如何兼容低版本,不用less編譯的方法能夠在運行時處理嗎
- 碰到的問題,說到node中臺服務,問日誌如何記錄,分佈式日誌如何管理,(ELK)後續聊到日誌系統展現時向數據庫進行大量數據查詢時的優化策略...
- 混合使用jqueryUI和vue,如何作兩個部分的狀態管理
- react-native開發遇到的問題,react-native下個版本優化方向
出題
- 鏈表的加法
- 二叉樹返回最大深度
- 數組求最大子序列和(dp)
二面
- 講項目
- 打開快手一個遊戲直播的頁面,問領導說這個頁面卡頓,怎麼優化。
- 給過來電腦,讓輸出上面那個頁面全部's','h'開頭的html標籤的種類。
- promise.all存在的問題,寫一個promiseFullfilled仍是啥,要求輸出結果跟promise.all一致,但要全部請求都不處於pending狀態才返回。
三面
- 給需求,要求畫出UML類圖,設計合理接口,題目是一個停車場的控制系統,實現兩個需求
- 自動停車計費,能夠認爲出入口各有一個攝像頭,經過回調的方式能獲取通過車輛信息
- 顯示各個區域的剩餘車位,能夠認爲每一個車位有一個傳感器,能夠是0或者1.
- 停車場內自動導航系統,問什麼數據結構表示地圖,以及如何實現導航算法
- 拿出acfun網站,問若是你是這個項目負責人,要作這個項目,從技術上要考慮哪些問題
字節跳動
上來先是紙上寫題目
- 實現一個高度爲50%的垂直居中樣式。
- arguments是否是數組,怎麼轉數組
- 隱式轉換寫輸出題
- 經典的那個asyn await和promise輸出題,要詳細解釋過程。
- 寫截流函數,問若是 thFn = throttle(obj.fn), thFn()這種調用方式如何保證this.
- 實現一個帶繼承方案的bind,就是bind輸入一個構造函數A,生成一個新的構造函數B,B new出來的對象須要繼承A的屬性和方法
- 實現k數之和,找出一個解就行,並說出時間空間複雜度
問答
- cookie做用是?cookie是如何造成的,使用cookie注意什麼問題
- 有哪些http緩存策略,爲何要用這麼多方式和字段控制
- 進程和線程,多進程如何通訊 (node相關,pipe管道,共享內存等)
後續轉到了數據部門
數據部門
一面
-
一個構造函數和原型鏈輸出題,相似於有new A().fn(); new A().fn()
這種的,
-
一個渲染線程和js主線程執行順序問題,改變背景色而後while循環再改變背景色,看到效果是怎麼樣的。
-
for循環輸出setTimeout,promise啥的混到一塊兒的輸出順序問題,而後問了任務隊列和事件循環問題,問了有哪些微任務,包括node的,setImmediate是否是微任務
-
截流防抖,應用場景
-
如何排查內存泄漏問題,閉包概念,原型,原型鏈概念, 一個做用域對象裏有哪些東西
-
new 一個對象執行了什麼操做
-
es6的新特性用了哪些
-
而後問了js原型模式和c的class區別,問了靜態對象和方法如何實現
-
GC機制
二面
- 講對promise的理解,promise.all功能,存在問題,如何封裝改進
- promise.race功能,應用場景
- 實現一個promise截流器,每次只並行發送n個請求。
- 解釋BFC以及做用
- http狀態碼,問了不少(307, 504這種),而後問了http緩存。
- echarts 實現原理,底層canvas api
- canvas如何畫曲線,(須要綁定哪些事件),用戶光標移動太快怎麼辦, 只捕捉了間歇的點,如何畫平滑的曲線
- 如何判斷一個點是否在曲線上(圖形裏)
三面
- 聊了一些非技術的
- 如何判斷一張畫布上有多少個圖形(三角形,多邊形,圓)這種,並求出他們的面積
- echarts的渲染流程
項目相關
- 講解了一下圖表顏色字段不一樣聚合方式的配置實現
- 多端實現提取了哪些公共組件進行復用,哪些部分不太好作
- 單元測試怎麼作,css測試怎麼作,ui自動化測試
Tencent
一面
上來先是紙上寫題目
- 原型鏈調用輸出問題,相似於有
new A().fn(); new new A().fn()
這種的,
- parseInt那個
問答
- token有什麼好處(相比cookie和CSRF攻擊)
- 解釋web和node的事件循環
- 解釋webpack熱更新原理
二輪技術總監
- 聊項目經理,聊業務前景
- 寫算法題
I__am___jon___snow
這種字符串反轉,單詞不反轉
- 判斷一個二叉樹是否是查找樹,寫完用case過一遍。
三輪是PM
交叉面,沒有聊技術
GM面
是一個單獨大辦公室的大佬,隨便聊,沒技術
阿里
這個太早了,寫的時候不少問題記不清了。
一面
問答
- promise,async await的區別
- 事件循環,任務隊列
- 繼承的實現,如何實現類的方法。
- 紙上寫題,一個dfs二叉樹的題
- 寫題,判斷兩個矩形區域的相交區域(excel那種形式,給[A1, D4] , [B2, D6]這種)
二面
- 聊了項目
- 聊了正在作的開源,問了一下技術實現
- 紙上寫題,比較兩個對象是否是相等,(全部的key value都同樣)
三面
沒有聊技術,說了hrbp很麻煩