web前端學(xué)習(xí)教程的小伙伴們可以添加QQ群:282549184大家可以互相學(xué)習(xí) 提升自己
在2020年的時候,突然想搞點大事城侧,思來想去易遣,感覺只有跳槽是最刺激的。
由于我比較懶嫌佑,不想換城市豆茫,所以這次只面試了頭條、微信和 shopee屋摇。十分幸運揩魂,都拿到了 offer。接下來就簡單的說下大家關(guān)心的面試題吧炮温。問題的答案的話火脉,之后有空我再補一下吧。
由于我之前的公司是有專門的重構(gòu)工程師寫 css 樣式的柒啤,所以當面試官開始問 css 的時候忘分,我都會跟面試官說我對 css 可能不是很熟,講明原因白修。
寫在最前:需要前端學(xué)習(xí)資料的伙伴可以私信我妒峦,發(fā)送“前端”等3秒后就可以獲取領(lǐng)取地址,免費送給大家兵睛。
頭條
一面
position 有哪些屬性
position: sticky 用過沒肯骇,有啥效果
typeof 的原理,與 instanceOf 祖很、 Object.toString.call() 的區(qū)別
react 有哪些生命周期函數(shù)笛丙,分別講下每個生命周期函數(shù)會在哪個時候被執(zhí)行。
react 哪些生命周期可以 setState
提供一個 VDOM 對象假颇,寫一個 render 函數(shù)來讓他變成一顆 DOM 樹胚鸯。(比如大概長這樣) { type: 'h1', props: { className: "", style: "", }, children: [] // 嵌套節(jié)點 }
來都來了,簡單寫一個快排吧笨鸡。
二面
0.1 + 0.2 === 0.3 嗎姜钳?為什么坦冠?(計算機的底層都是由二進制來表示的,對于 0.1和 0.2 這種數(shù)字在用二進制儲存的時候會有精度誤差)
實現(xiàn)一個算法哥桥,來完成字符串相加辙浑,比如 "111" + ”2222“ = ”2333“。(高精度算法)
問我最近對什么技術(shù)感興趣拟糕,說來聽聽判呕。(這里聊了好久,至少有半個小時) 跟面試官聊了挺多送滞。主要有
react 為什么是平臺無關(guān)的框架侠草,如何實現(xiàn)的。(依賴注入)
PWA
WASM
v8引擎 如何執(zhí)行 js 代碼(這一塊我不熟犁嗅,我就簡單聊了編譯原理边涕,代碼的編譯過程)
AST 以及 AST 有啥應(yīng)用 (babel/ Tree-shaking 以及之前有人用 AST 來實現(xiàn) 微信小程序動態(tài)執(zhí)行代碼)
img 標簽間距問題的原理以及如何解決
深度拷貝
頭條三面和四面都是后臺大佬面試我,所以基本沒問前端的知識
三面
DNS 查詢的過程愧哟,分為哪兩種奥吩,是怎么一個過程(分為 DNS 遞歸查詢和迭代查詢哼蛆,具體有什么區(qū)別可以查查)
如果你發(fā)現(xiàn)有個網(wǎng)站你突然打不開了蕊梧,有哪些可能。(發(fā)揮想象腮介,斷網(wǎng)啊肥矢,DNS 解析出現(xiàn)問題,代理服務(wù)器出現(xiàn)問題叠洗,流量被劫持了等等)
有一個"123456789101112131415....n+1"類似這樣的序列怀愧,求出第m位的數(shù)字 m=11的話戒努,那么答案是0 m=12的話,答案是1
有一個有序遞增序列,求有多少個不同的數(shù)字求泰。比如 [1, 5, 7, 7, 8, 9, 9]。里面總共有5個不同的數(shù)字:1, 5, 7, 8, 9
聊聊人生聊聊未來
四面
紅黑樹和哈希表的對比
哈希表如何解決沖突
線程和進程的區(qū)別
場景:有一個應(yīng)用會經(jīng)常創(chuàng)建蟀悦、刪除節(jié)點對象崭捍,如何優(yōu)化。(節(jié)點池)
shopee
一面
react 中寫類組件的時候案腺,如何解決方法 this 丟失問題
在 constructor 里使用 bind
箭頭函數(shù)
使用 bind 和箭頭函數(shù)的區(qū)別
react 生命周期中庆冕,在新版本有些將被廢棄,也新增了一些生命周期劈榨,講一下访递?
setState 是異步還是同步
VDOM 渲染原理
實現(xiàn)一個方法,將傳入對象的下劃線命名方式全部換為駝峰式(考慮遞歸的場景)同辣。比如 // before const obj = { first_name: 'chen' } // after const obj = { firstName: 'chen' }
二面
es6的模塊管理 與 commonjs 的對比
es6 Decorator
es6+ 新特性
聊項目
Base64 的原理拷姿?編碼后比編碼前是大了還是小了惭载。
非遞歸實現(xiàn)樹的后序遍歷。(這個比較有意思跌前,大家可以試下)
微信
微信其實大部分都是在聊項目棕兼,以及問項目相關(guān)的東西。一面前會先給個筆試題抵乓,做完后才開始面試伴挚。
一面
這道題最難。灾炭。我使用了回溯法來做茎芋,不過不是正確答案,雖然剛好把測試用例都過了蜈出。
setTimeout 的原理
聊項目
二面
二面的時候是晚上10點多田弥。。我都沒想到會這個時間點打電話來面試铡原,我當時正在開開心心的打游戲呢偷厦!
前面基本都是在聊項目
react 和 vue 的區(qū)別
SPA渲染的優(yōu)缺點
對前端框架的看法(只是解決問題的工具,并不拘泥于具體的框架)
應(yīng)該還有一些問題燕刻,不過太久只泼,當時也太緊張了,不記得了卵洗。
三面
了解微信小程序的底層實現(xiàn)嗎(這里其實可以參考下微信的官網(wǎng)请唱,之前做了個匯總,可以看下)
聊項目
最近比較關(guān)心的技術(shù)
總結(jié)
每一個面試環(huán)節(jié)过蹂,都必不可少的有以下環(huán)節(jié)
自我介紹
聊項目
面試題