記一次高級前端開發(fā)工程師面經
(給前端大學加星標,提升前端技能.)
作者: 唯依綰青絲
https://juejin.cn/post/6951407692011274247
前言
#面試挺累人的,每天下班后趕回家餓著肚子面試,面了將近一個月,大概就一個中廠的水平吧。面試完最好進行一個復盤,查漏補缺。
一、攜程
對著簡歷問一遍 rem, 計算出375的屏幕,1rem,單位出現小數怎么處理 javascript精度問題的原因 axios用途 性能優(yōu)化的點,webpack分包,首頁資源大小,請求優(yōu)化,gzip之前還是之后,React重新渲染 國際化站點,cdn, 在頁面什么階段加載國際化文件,如果有20多個語言該怎么做 ssr有沒有用過 項目中websocket是解決了什么問題 DOM, BOM, js的關系 React dom綁定事件,與原生事件有什么區(qū)別 http2多路復用
代碼題
if (!('a' in window)) {
var a = 1;
}
console.log(a);
var a = {}; var b = {}; var c ={};
console.log(a === b);
console.log(b === c);
console.log(a === c);
var d = e = f = {};
f = {}
e = f
d = e
console.log(d === e);
console.log(d === f);
console.log(e === f);
米哈游:
http狀態(tài) 301,302, 304,緩存相關字段 cookie、ws是否跨域 觸發(fā)bfc的方式 rem和vw的使用場景 偽代碼實現下懶加載
某外企:
一、
下面函數是閉包嗎?
const func = ()=> {
const a = '111'
const fun2 = ()=> console.log(a)
return ()=> console.log('_')
}
const next = func()
'12345'.split('')
上述代碼發(fā)生了什么
下面代碼打印的是
console.log("12345" instanceof Object);
實現一下some, everyflatten實現
const promise = new Promise(resolve => {
console.log("11111");
setTimeout(() => {
console.log("22222");
}, 0);
resolve();
console.log("resolve");
throw new Error("error");
console.log("error");
});
promise
.then(
() => {
console.log("33333");
setTimeout(() => {
console.log("44444");
}, 0);
},
() => {
console.log("reject");
}
)
.catch(() => {
console.log("catch");
});
console.log("55555");
函數組件怎么阻止重復渲染
二、
AST作用 or babel實現原理 實現自定義hooks,usePrevious。setcount(count => count + 1)后輸出上一次count的值
美團:
一、
自我介紹中提到了性能優(yōu)化, 說了說性能優(yōu)化的點 不同域名共享cookie on, emit, 實現 防抖的實現 輸入url到頁面返回結果 緩存的實現方式 React組件重復渲染 webpack分包
字節(jié):
一、
Webpack 插件,生命周期 umi約定式路由怎么實現的 babel實現遠原理 React ref fib實現,如何優(yōu)化
盒馬:
一、
說出你最擅長的部分,追問 webpack拆包的依據。1.被多個模塊使用,cache起來 2.資源過大 canvas 點擊線段事件。重合區(qū)域怎么處理 webWorker的使用:為什么不在worker里面發(fā)出請求,做數據轉換呢?
太美醫(yī)療:
generate函數和async區(qū)別 webpack插件實現
叮咚買菜:
一、
Vue, React使用情況 父子組件的mounted 調用順序 $nextTick實現原理 子元素水平垂直居中 斐波那契數列如何優(yōu)化 業(yè)務題:封裝一個全局的彈窗,在任何組件內都可以調用。追加:如何同時打開5個彈窗,關閉順序又如何
二、
封裝Vue插件 5個彈窗 $nextTick原理 手機號碼分割 _ _ _ - _ _ _ _ - _ _ _ _ 最大字符串數, “abcdabcda” 求最長的不重復字符串 兄弟組件通信 vuex 模塊化怎么做 不同域名如何共享cookie
總結:
對于3~5年的前端開發(fā)來說,不應該僅僅是停留在會用API的層面,至少要關注到你使用的技術的一些原理實現。這也是大廠考察候選人鉆研精神吧,相對來說有一個區(qū)分度。個人建議最好精通一個方向,比如:
前端工程化,webpack, babel, Node 等。 精通框架源碼 可視化,3D方向 流媒體,音視頻
當然,如果要進大廠的同學,還得突擊一下算法部分。leetcode 簡單和中等難度就可以。
點贊和在看就是最大的支持??
評論
圖片
表情
