1年工作經(jīng)驗8月份大廠面試全記錄
本文來自讀者@AaronKwong 投稿。
筆者@AaronKwong 2020.6 畢業(yè)于廣州某高水平大學,計算機學院,軟件工程專業(yè)。大四上學期開始實習并一直工作到時下。
2021.3 老東家在線教育項目解散,轉崗并開始復習。
8 月下旬開始投簡歷,boss 投遞 + 朋友內推,先后投遞了拼多多,yy 直播,歡聚,字節(jié)跳動,虎牙,基本上每天都在面,白天上班晚上面試,大概持續(xù)了兩周左右
面經(jīng)
拼多多商家端一面(40 分鐘)
-
簡歷項目問詢 - 細節(jié)
-
垂直水平居中
-
一個簡單請求的 header 會有什么字段
-
map, filter, reduce 都怎么用
-
symbol 有了解嗎
-
ES5 繼承,ES6 類繼承,靜態(tài)方法
-
Promise 超時控制
-
DFS 找節(jié)點
-
node 有什么特性,適合用來做什么
-
midway 對比 egg 有什么優(yōu)勢
-
typescript 有沒有實踐過
-
平時有用什么設計模式嗎
-
平時打包工具 - Webpack 相關
-
你有沒有哪些我沒問到你想說的
-
緩存相關,cdn 緩存處理
-
你有什么想問的
拼多多商家端二面(65 分鐘)
-
壓力面,質疑觀點
-
拍平數(shù)組
const flatten = (list, level = +Infinity) => {
// ...
};
const array = [1, [2, [3, 4, [5]], 3], -4];
const list1 = flatten(array);
const list2 = flatten(array, 2);
console.log(list1); // [1, 2, 3, 4, 5, 3, -4]
console.log(list2); // [1, 2, 3, -4]
-
promise
const myPromise = val => Promise.resolve(val);
const delay = duration => {
// ...
};
myPromise(`hello`)
.then(delay(1000))
.then(val => console.log(val)); // 一秒之后輸出 hello
拼多多商家端三面(30 分鐘)
-
項目細節(jié)問詢
-
Vue 源碼有讀嗎 - 響應式原理,nextTick
-
最近有沒有研究什么新技術
-
項目優(yōu)化有哪些實踐
-
V8 如何執(zhí)行一段代碼
-
72-編輯距離
-
226-翻轉二叉樹
-
性能優(yōu)化的實踐
-
有其他想問的嗎
歡聚一面(90 分鐘)
-
項目細節(jié),ci/cd 詳細問,重構詳細問,詳細介紹題目錄入
-
vue 的 history 和 hash 模式區(qū)別,hash 與 ssr
-
https 基本原理
-
ca 證書怎么確保真實性
-
cors 是什么,同域又是什么
-
怎么解決前后端通信跨域
-
可以 node 轉發(fā)繞過跨域,為什么瀏覽器還是要做 cors
-
除了 webpack proxy ,nginx,后端配 cors 頭,還有什么跨域方案
-
xss 攻擊怎么防范,除了轉譯呢,轉譯出來的那個叫什么
-
es6 的二進制操作?
-
說一下思路怎么去實現(xiàn)一個 promise
-
promise 怎么能夠保證 then 的順序執(zhí)行
-
worker 有了解過嗎
-
ssr 的原理?
-
性能優(yōu)化有哪些實踐
-
有沒有在研究什么
-
手寫:min 到 max 的隨機數(shù),整數(shù)和小數(shù)的方案
-
場景:多個屬性,每個屬性都是數(shù)組,求屬性聚合結果
-
場景:用戶點擊按鈕沒反應,怎么去定位錯誤(除開 QA 環(huán)節(jié)能檢查到的錯誤)
-
有什么想問的
歡聚二三面
二面部門終面,三面 hr 面,現(xiàn)場一天面完,主要是和部門領導交流,關于項目組以及負責的模塊;了解薪酬福利相關
yy 直播一面(30 分鐘)
-
項目的 CI/CD 怎么配置的,jenkins 怎么部署,為何沒有直接部署單獨機器,內網(wǎng)互通去傳送文件發(fā)布,git 權限怎么配的
-
vue-router hash/history 區(qū)別
-
vuex 里面有哪些東西,分別用來干嘛的
-
vuex 分了模塊,有全局通用的內容是怎么配置的
-
除了直接調用命名空間模塊還有辦法直接訪問需要放在全局模塊下的東西嗎
-
Vue 的響應式原理
-
子組件的 data 變化,那么父子組件的更新是怎么樣進行的
-
雙向綁定,那么視圖數(shù)據(jù)更新怎么影響到 data 里的數(shù)據(jù)
-
Vue 的生命周期有哪些
-
項目內怎么通信 - (EventBus/emit-on/vuex)
-
EventBus 實現(xiàn)原理,有沒有多條事件總線的情況,怎么解決可能重名的問題
-
移動端里的單位 - rem/vh/vw
-
postCss rem=>px,設計稿上 750 寬度是怎么去算的
-
移動端有什么性能優(yōu)化的點 - 虛擬滾動
-
typescript 有寫過嗎有了解嗎
-
說一下你理解的泛型
-
webpack loader 項目里有用哪些?
-
一個.mp4 文件加載的話需要用哪些 loader
-
有開發(fā) webpack 插件嗎?是要怎么開發(fā)
-
http 有多少版本
-
http 1 2 3 的版本區(qū)別
-
http2 和 1 的區(qū)別,解決了什么東西
-
http3 解決了 http1 和 2 什么問題
-
http3 什么問題沒想起來
-
http 緩存
-
cdn 緩存是強緩存還是協(xié)商緩存
字節(jié)跳動 一面
-
輸出結果
var a = 3;
var total = 0;
var result = [];
function foo(a) {
var i = 0;
for (; i < 3; i++) {
result[i] = function () {
console.log(i, a);
total += i * a;
console.log(total);
};
}
}
foo(1);
result[0]( "0");
result[1]( "1");
result[2]( "2");
-
Promise 輸出順序
-
給一個 n,生成一個
[0, n-1)亂序數(shù)組 -
這個時間復雜度是多少,能進行優(yōu)化嗎
-
看你寫的這個有用 sort,為什么是 O(nlogn)呢
-
還能再優(yōu)化下嗎
-
說一下快排原理?
-
三路快排是怎么個三路法
-
還了解其他一些排序嗎
-
詳細說下歸并排序
-
穩(wěn)定和不穩(wěn)定排序怎么界定?
-
了解一些時間順序相關的 api 嗎
-
requestAnimationFrame 有了解過嗎
-
setImmediate 和 setTimeout 和 setInterval?
-
項目細節(jié),最有成就感的需求是哪個?
-
base64 是怎么樣轉碼的
-
為何轉了 json 協(xié)議之后可以優(yōu)化圖片上傳
-
如果公網(wǎng)上傳的話,怎么防止不被人拿來做圖床
-
xss 的話怎么防止
-
Vue 的生命周期有哪些
-
created 和 beforeMount 有何區(qū)別
-
render 函數(shù)和 jsx
-
Vue 怎么轉 js 代碼的?
-
computed 里面的懶更新是怎么實現(xiàn)的
字節(jié)跳動 二面(47 分鐘)
-
自我介紹
-
最有成就感的項目細問
-
react fiber 原理
-
求藍色區(qū)域的寬 高
<html>
<style>
.box {
padding: 2px;
margin: 2px;
width: 10px;
height: 10px;
background: blue;
border: 1px solid black;
}
#content-box {
box-sizing: content-box;
}
#border-box {
box-sizing: border-box;
}
</style>
<body>
<div class="box" id="content-box"></div>
<div class="box" id="border-box"></div>
</body>
</html>
-
輸出結果
var length = 10;
function fn() {
return this.length + 1;
}
var obj1 = {
length: 5,
test1: function () {
return fn();
},
};
obj1.test2 = fn;
console.log(obj1.test1());
console.log(fn() === obj1.test2());
-
拍平數(shù)組,去重,排序
-
leetCode 103 + 拍平結果
字節(jié)跳動三面(65 分鐘)
(看到前面兩面的內容/評價)問:是不是有專門準備過?
項目細節(jié),實現(xiàn)原理,痛點解決方案,可以優(yōu)化的方案,怎么實現(xiàn)這個優(yōu)化的方案
題庫整個的實現(xiàn)原理,移動端 table 虛擬滾動不定高的實現(xiàn)原理
平時和產(chǎn)品怎么交流;不相同意見的時候怎么處理
前面幾面面試體驗怎么樣;有哪些問的東西難倒你了
一個二維數(shù)組對應骰子的上下兩面,其他四面已被磨平,兩面的數(shù)字都是 1-6 隨機一個數(shù),但不會重復,想要所有的上面或者下面都是同一個數(shù)字,最少需要翻幾次
字節(jié)跳動 換部門 加面(60 分鐘)
-
題庫和重構細節(jié)
-
題庫的優(yōu)化迭代有沒有具體的數(shù)據(jù)可以支撐?
-
前面幾輪有沒有碰到特別難的不會的點?
-
https tls 連接詳情,幾個 rtt
-
promise 優(yōu)缺點
-
promise 怎么控制異步
-
閉包
-
繼承
-
promise 輸出順序
-
typescript 泛型
-
首頁白屏優(yōu)化
-
算法
字節(jié)換部門 hr 面(50 分鐘)
-
自我介紹
-
最有成就感的需求
-
這個需求有沒有可以優(yōu)化的點
-
希望是一個怎么樣的工作環(huán)境
-
覺得自己的優(yōu)點是什么
-
放到市場上自己的優(yōu)勢在哪里
-
平時學習的途徑
-
可以說下你關注了哪些技術公眾號嗎
-
家常
-
期望薪資
-
工作地區(qū)相關
-
部門相關
總結
代碼相關:JavaScript 基礎重中之重,工程化方向的了解和實踐也必不可少,這次面試下來還是發(fā)現(xiàn)到自己對于 Node,TypeScript,Webpack 等會有短板存在。
業(yè)務相關:對自己負責的業(yè)務模塊一定要做好總結和復盤,尋找優(yōu)、缺點,漏洞,思考優(yōu)化/解決方案。
給自己一個時間點,到了這個點就開始投,不然沒有時間限制,這里復習一下,那里學一下,復習進度就會拖慢。
面試官們也都很友好,遇到卡住的情況會嘗試引導你去做,實在想不出來也可以說說自己大概的思路。
要感謝的人
同學和同事們都給了我很大的幫助,有給我復習方向,以及各種內推機會。包括之前提桶焦慮,左怕右怕,擔心自己復習得不到位,可能面什么都涼。尤其是最初帶我學前端的大佬,給了我很大的鼓勵,面試之后復盤的復習點總結也幫助了我許多,給我復習的方向和節(jié)奏都給了很大的指引。
復習中有參考的內容
霖呆呆大佬的掘金文章,promise,this 相關
