美團(tuán)前端暑期實(shí)習(xí)一二面(坐等三面/OC!?。?/h1>
5月6日15:00 美團(tuán)一面
- JS 有哪些類型,分別存儲(chǔ)在哪里(堆區(qū)/棧區(qū)),使用上有什么區(qū)別
- 深拷貝、淺拷貝、
=
賦值有何區(qū)別?描述一下深拷貝寫法?有哪些坑(循環(huán)引用) - V8 垃圾回收機(jī)制(深挖,不會(huì))
- 閉包
- 作用域鏈
- 原型鏈
- 輸入 URL 到看到頁面有哪些過程?
- Follow up:瀏覽器回流和重繪,如何減少回流(原生 / React 等框架)
- Node 事件循環(huán)
- 和瀏覽器的有什么不一樣?
- Node 微任務(wù)和宏任務(wù)都有哪些?(只會(huì)說 Promise 和 timeout……其實(shí)還有很多)
null
和undefined
區(qū)別:如何區(qū)分?除了用===
還有什么方法?- TCP 三次握手
- HTTP 常用狀態(tài)碼
- 深挖
304 Not Modified
:返回 304 實(shí)際上發(fā)生了什么過程?瀏覽器緩存機(jī)制? - 有哪兩種緩存:強(qiáng)緩存、協(xié)商緩存
- 深挖
- 前端構(gòu)建工具:Webpack 和 Vite
- Babel 是什么?原理(不會(huì))
- React Fiber 有了解嗎?(深挖原理)
- React 閉包陷阱
- 使用過哪些 AI 工具?平時(shí)如何使用 AI?
- 算法題:編輯距離
5月8日19:00 美團(tuán)二面
二面一開始,面試官就說有三部分:簡歷內(nèi)容了解;基礎(chǔ)知識(shí);代碼考察
簡歷
- 深挖實(shí)習(xí),尤其注重里面大模型應(yīng)用相關(guān)的內(nèi)容
- 深挖項(xiàng)目:產(chǎn)出是什么,學(xué)到了什么,為什么做(動(dòng)機(jī))
- 看我項(xiàng)目的一部分關(guān)鍵代碼
- 問:大模型流式輸出是什么原理?
- 盲猜 server push - 錯(cuò)啦!是
Transfer-Encoding: chunked
然后按 chunk 返回,知道\r\n
結(jié)束??!
- 遇到最大的挑戰(zhàn)是什么?
基礎(chǔ)知識(shí)
- 瀏覽器緩存(估計(jì)是看我一面沒答上來,又來了一次):返回
200
的緩存和304
的緩存機(jī)制有什么不同? - Webpack 會(huì)多少說多少(我說用 Vite 多,他沒問 Vite)
- Webpack Tree-shaking
- 寫過 plugin/loader 嗎?(沒有)
- 用過 JWT 嗎?(用來實(shí)現(xiàn)登錄態(tài)保持)如果別人劫持到了這串 token,能不能在別的瀏覽器偽造登錄態(tài)?有什么方法解決?(完全不會(huì)!盲猜了幾個(gè))
- React Hooks 為什么不能寫到 if/for 等控制結(jié)構(gòu)里?
代碼題
仔細(xì)觀察一個(gè)樹形結(jié)構(gòu):
// 輸出1 3 7 8
const tree = {
value: 1,
left: {
value: 2,
left: {
value: 4,
left: {
value: 8,
}
},
right: {
value: 5,
}
},
right: {
value: 3,
left: {
value: 6,
},
right: {
value: 7,
}
}
}
問為什么輸出1 3 7 8,找規(guī)律——發(fā)現(xiàn)是輸出每一層的最后一個(gè)節(jié)點(diǎn)!
于是開始寫:
interface TreeNode {
value: number;
left?: TreeNode;
right?: TreeNode;
}
function findLastNodeValues(tree: TreeNode): number[] {
const queue: [TreeNode, number][] = [[tree, 0]];
const lastNodeValues: number[] = [];
while (queue.length > 0) {
const [node, depth] = queue.pop()!;
lastNodeValues[depth] = node.value;
if (node.left) {
queue.unshift([node.left, depth + 1]); // 提了一嘴這是O(n)
}
if (node.right) {
queue.unshift([node.right, depth + 1]);
}
}
return lastNodeValues;
}
console.log(findLastNodeValues(tree));
JavaScipt沒有像樣的隊(duì)列結(jié)構(gòu),本來想雙棧模擬一個(gè),面試官說用unshift
就好,于是就這么寫了
坐等OC?。?!
最后請教一下牛油們:美團(tuán)到底有幾面?。《娣磫柕臅r(shí)候他們說還有一輪,我不知道他說的是 HR 面還是技術(shù)三面……慌慌的 QAQ
#美團(tuán)##美團(tuán)求職進(jìn)展匯總##前端##美團(tuán)面經(jīng)##前端實(shí)習(xí)#