lz 雙非本科,前端開發技術渣。一字一字碼出來的實習和校招經歷,希望大家都能拿到自己心儀的offer ~ ~
找實習
戰線從寒假2月就開始了,一直持續到4月中。寒假期間2月底拿到美團實習散招offer,3月去北京美團實習,實習期間陸續拿到 網易遊戲、騰訊音樂、支付寶 的暑假實習offer,最後萬分糾結後,選擇了 支付寶 。
美團(offer)
一面(2017.2.16 10:00)
- 瀏覽器事件模型
- jQuery的delegate事件代理,寫出 polyfill
- iframe載入完後,將高度變為指定的px
- 實現垂直水平居中
- 統計單詞出現次數(key => value)
- 二叉樹翻轉180度
- 閉包的內部實現
- 實現bind方法,寫出 polyfill(考察apply、原型鏈)
二面
- DOM是什麼?有哪些操作
- 獲取class="a"的所有div元素
- ==和===區別
== 允許型別轉換,=== 不允許型別轉換複製程式碼
- typeof null === Object , 以及undefined和null區別
- 判斷陣列的方法,哪個更好?
Array.isArray(arr) 是 Object.prototype.toString.call(arg) === '[object Array]';的語法糖。instanceof 跨frame時不能共享原型鏈。複製程式碼
- 刪除已有的html節點(考察removeChild)
var child=document.getElementById("p1"); child.parentNode.removeChild(child);複製程式碼
- 字串反轉
const reverseString = str => str.split("").reverse().join("")複製程式碼
- 跨域和AJAX(大概6-7種)
CORS、JSONP、Fetch、postMessage、Node、Webpack proxyTable、...複製程式碼
- :before和::before的區別(偽類、偽元素)
- 偽類nth-child和nth-of-type區別
- var和function定義方法的區別(呼叫與宣告的順序)
三面
- 二維圖形形成三維效果
- requestAnimationFrame和setTimeout
- 裁剪圖片,實現,矩陣變換
- 你畫我猜專案的畫線實現
- WebSocket是什麼原理,用了什麼設計模式?
- Socket實現
- TCP/IP網路分層
- IP 偽造
騰訊課堂IMWeb(掛總監面,看問題就知道為什麼了)
一面(2017.2.16 19:00)
- JS事件模型
- AJAX同源策略及跨域方法
- HTTP狀態碼
- XSS和CSRF
- Express特點
- nodejs記憶體洩露
- Vuejs的生命週期?
- gulp和webpack的區別?(模組與流,CommonChunks抽出公共模組)
二面(桌面共享寫程式碼)
用原生JS實現一個類似百度搜尋框的自動完成控制元件,比如候選結果集arr=['aaa','abc','acc','dda',...],使用者輸入'a',下拉選單會出現以字母 a 開頭的項'aaa', 'abc', 'acc'
要求:
1. 滑鼠或鍵盤可以選中候選結果到輸入框
2. 能做好相容性有加分
3. 做題時間45分鐘
4. 用原生 js 實現複製程式碼
這個題如果要做好還挺複雜的,相容下IE、物件導向的設計、輸入延時、請求返回的順序、字串儲存DOM,避免重複 DOM 插入造成的效能問題。
寫的還可以,面試官還比較滿意。
三面 (大概1個小時)
- 問了專案,對專案的技術點,細節,做的好的,做的不太好的
- 統計給定陣列中,各數出現的次數,返回 json 物件
- gulp和webpack的區別?
- 5點15分時,時針和分針的夾角
四面 (總監面,3個問題)
- 最近做的專案(問最近,開始有些懵,)
- 瀏覽器快取
- 60%喜歡足球,70%喜歡籃球,80%喜歡排球,問既喜歡足球,又喜歡籃球,還喜歡排球的有多少?
總監全程很高冷,基本不說話,我還以為電話訊號不好。回答過程中沒有任何反饋,感覺我一直在自言自語。
網易遊戲(Offer)
一面(3月1號 14:30)
- jquery鏈式呼叫實現原理?(return this)
- vue 雙向繫結
- AJAX 原理及跨域
- 元件化思想
- 問了專案,gulp 、webpack、grunt日常使用
杭州現場面(3月3號 共三面,上午兩面、下午一面)
- 手寫字串去重
- 問能不能正常執行,若不能正常執行,需要在a.b函式內做什麼改變?
不能正常執行,var a = 1; a.b = function(){ alert(1); } a.b();複製程式碼
a.__proto__.b
或者Number.prototype.b
,但不建議真實環境下這樣使用。 - WebGL 原理
- 快取優化
- XSS 和 CSRF
- threejs的效能測試
- 聊了聊專案、城市偏好這樣的話題。
螞蟻金服-體驗技術部(Offer)
大牛、網紅雲集,玉伯、蘇千、民工叔、死馬、承玉、偏右、阮一峰老師等,
Ant Design
、eggjs
、dva
、g2
等開源專案。
一面電話-青桅師兄 (2017.3.5 19:00,當時面完網易還在杭州)
- Vue.js的雙向繫結怎樣實現的?
- Promise物件,巢狀try catch,內層巢狀錯誤捕獲
- 陣列去重(寫了大概3種方法)
- nodejs的初衷是什麼,有哪些不一樣的特性
- node建立子程式,程式間的通訊
- 負載均衡
- 判斷陣列
- Class類的繼承
- 還學過哪些程式語言?
- vue使用了虛擬 DOM? vuex、flex資料管理
- vue1.x 和 vue2 的區別
二面視訊面-承玉大神 (2017.3.7 11:00)
- JS資料型別有哪些
- ES6中的Promise,怎樣實現依次非同步回撥
- ES6有哪些新的東西?
- CSS3的新特性
- 實現居中對齊(大概3種方法)
- ES6模組機制
- node非同步非阻塞 I/O 底層實現原理
- JS類的繼承
- TCP/IP網路分層
- Apache和Nginx的優缺點
- react diff演算法(三層diff)
- XSS 與 CSRF 安全問題,提到了 SSRF 安全
三面HR視訊面 (2017.3.7 14:00)
省略,每個人問題和答案都不一樣。但聽出阿里大概喜歡這樣型別的:從初/高中開始搞程式設計的、創業經歷、實習經歷、比賽經歷、掛科不多的、熱愛技術的
3月10號週五開始在美團實習
騰訊QQ音樂(Offer,很愧對主管)
一面 (2017.3.10 19:57)
- js基本資料型別,傳值和傳引用的
- GPU加速原理,哪些用了 GPU 加速(以空間換時間)
- 事件模型,怎樣理解事件代理的好處
- 記憶體洩露 為什麼閉包會造成記憶體洩露
- WebAR的實現,WebGL
- 前端安全有哪些?
- 這些專案中,PV 量最大的是哪個
- Web 效能優化
- Ajax跨域
- 伺服器渲染的好處
- 短期目標和長遠目標
- 對前端未來的理解
- 用過哪些除錯工具
- Zepto怎樣解決移動端的點選穿透事件
- Vue生命週期及狀態管理
二面 (2017.3.18 11:10)
- 給文件中還沒新增的 DOM 元素加事件?如果給1000個相同 DOM 加事件,有什麼問題
- 事件模型
- 常使用的除錯移動端頁面
- AJAX跨域,其中JSONP有哪些安全問題,怎樣處理(白名單過濾)
- 常見的移動端事件
- 做的這些專案,做了哪些優化?
- 瀏覽器快取
- 什麼是一個好的產品?
- 如何評價一個產品的UI設計與互動
三面 (2017.3.21 19:30)
- ES6中的特性
- Ajax過程,怎樣實現按需載入
- DNS 解析過程,DNS 劫持
- XSS和CSRF
- 實現居中對齊
- threejs原理
- 問了問專案
四面-面試委員會 (2017.3.27 15:00)
面試委員會:從去年2016年校招開始設立的一個委員會,如果學校不在騰訊目標院校的學生,在部門面完之後,HR面之前,會增加一個面試,可控性不強,這個能不能過,運氣成分比較大。
- 專案中遇到了哪些坑?怎樣解決的?
- 經常提交什麼漏洞?
- react應用到哪個程度,瞭解diff演算法嗎?
- redux原始碼看過嗎?
- koa怎樣實現中介軟體原理?
- 覺得騰訊雲和阿里雲有什麼區別,優勢和劣勢?
- ...
五面HR (2017.3.27 16:00)
省略...
騰訊實習內推面試28號結束,面完hr前,狀態是hr面試中,面完之後,第二天28號,狀態變成 已報備 (不是 已報批 ),需要在後續線路面試中瞭解更多情況。
六面-北京線路,主管當面聊 (2017.4.17 18:00)
- 開放題:一個按鈕無法響應的錯誤上報方案(前端方案、後端方案、阿里的是spm埋點方案)
- 前端自動化測試,使用者熱力圖的實現原理
- https中公鑰和私鑰
- 美團實習期間遇到哪些問題,怎樣解決?
- 問了問城市偏好,聊了會天,主管說之所以面來面去,內推面完又讓來線下面,是因為只有1hc,所以慎重地很。(最後5月才拒的,確實心裡過不去)
下午7點面完,出酒店,坐上公交後,手機開啟一看,狀態由 已報備 變成了 已經完成所有面試流程 ,開心同時又糾結起來,雖然此時阿里hr面完已經1個多月了,心裡知道應該能拿到阿里的實習offer,但是沒有正式的郵件又不敢輕易下結論。最後陸續收到offer郵件,
校招
阿里實習是從 6月底 到 8月底,轉正面試是從8月3號開始,一面蘇千大大,二面hr,在8月25號週五之前,不知道到底能不能留,心慌,所以面幾家,保險。
騰訊AlloyTeam
一面 (8月4號下午3:46 - 5:07)
- HTTP快取、HTTP 1.0的HTTP 1.1的區別、HTTP2 ServerPush、HTTP狀態碼
- 打包工具,hash的目的
- HTML5的新特性
- React開發起來比Vue有哪些特點?
- CSS3媒體查詢
- 移動端開發中遇到的問題?
- 閉包、記憶體洩露
- 從大漠老師的熱點,來看怎樣選擇Vue、Angular、React?
- XSS和CSRF
二面 (8月8號晚上7:39 - 8:45)
- 做過哪些專案,FrozenUI怎樣重構成React版
- https中公鑰和私鑰
- 快取策略
- 使用過哪些協議,Schema協議的原理
- HTTP2
- 使用過哪些MVV*框架,Vue和React之間的區別
- 移動端開發中遇到的問題?
- 怎樣理解前端工程化?
- 前端跨域
一面的面試官加了我微信,透露hc很緊張,實習轉正都不太夠用,所以就結束了面試。
網易雲音樂 (8月28號 週一 線下)
8月25號週五,向主管請下週一的假,去面試,主管回了一句:其實沒必要面了,留問題不大。聽到這句,開心得像個孩子。?,所以面網易的時候,也沒有準備,也不太想面了。
- 手寫 deepClone
- 一個原型鏈繼承的題
- call和apply應用題
- 手寫實現 call
- ...
面完網易雲音樂,晚上7點坐地鐵從濱江區回西湖區,地鐵上接到QQ音樂 的一面電話,沒錯,是QQ音樂,主管把我簡歷一直鎖著,系統解鎖後又手動鎖上。因為當時在地鐵上,約了9點面試,結果9點沒打電話過來,後面也沒有了。其實校招再面QQ音樂是比較糾結的,萬一再向實習那樣,接了不去,我估計終身騰訊黑名單。所以說愧對QQ音樂主管
網易遊戲
一面電話通過,二面通知 9月6號 週三線下面試,結果當時阿里實習結束,買的是 9月5號 的機票,所以也就沒面了。
微信WXG事業群 (9月7號)
一面共享寫程式碼,考演算法,像是一個多重揹包的動態規劃問題。
微信小程式團隊一共有 n 名成員,決定出去秋遊,在海邊遇到出租摩托艇的傑克馬,馬先生手上有 m 輛待出租的摩托艇,價格分別是 b1 、b2 ... bm;
由於習慣了微信支付,團隊中每個人身上的現金都有限,分別是 a1 a2 ... an,對了,一起出門的老闆還帶有 S 元的團隊經費,這個經費是每個人都可以使用的
那麼考慮以下兩個場景
場景1
團隊成員都很有愛,都願意借錢給其他同事。
function max( Array n, Array m, S) {
return number
}
場景2
團隊成員都十分小氣,是不願意借錢給別人的。
// 問題一 請判斷團隊成員是否都能租到摩托艇
function isAll(Array n, Array m, S){
return true | false
}
// 問題二 請問給出一個策略,使得團隊成員租到最多的摩托艇,並且該策略在相同數量的摩托艇情況下花費最少
function max( Array n, Array m, S) {
return {
number,
cost
}
}複製程式碼
就一個阿里offer,謝謝阿里沒讓我失業。?