前端填空题_一年前端面试总结|入职字节|2020.8
你當像鳥飛向你的山
前言
????普通本科,軟件工程專業,2019年畢業進入奇安信集團(前360企業安全),實習期間遇到一群可以一起嗨的朋友,感覺很幸福,也很慶幸能夠遇到hin nice的導師,對我的成長幫助 hin 大。跳槽之旅要從6月份開始投簡歷講起,因為個人原因想要去深圳,所以拒掉了知乎的offer,又因為個人原因不去深圳了...最后入職字節base北京-國際化團隊,想要內推的朋友們可以私聊我~,具體offer選擇的原因可以看面經部分哦~。這篇文章想總結一下這段時間的面試和一些好文推薦。
????面試是一個雙向選擇的過程,不要因為一次面試失敗就否定自己~沒有誰生來就是大牛,面試不僅看你的技術能力表達能力,也很看你和面試官的緣份,所以每次面試結束之后記得總結復盤一下。也不要因為害怕失敗遲遲不敢投出自己的簡歷,我開始也是這樣,以一個已經上岸的人的角度再往回看,你只有邁出去,你才知道你行不行,勇敢點!!不要還沒開始就結束了。不論面試結果失敗還是成功,你要繼續磨刀霍霍向offer,奧利給少年們!!!
面試準備情況
????說說我的面試準備情況,開始準備階段就是在掘金知乎上面看看大家的面經,面經不論對找工作還是查漏補缺的人來說幫助都很大,所以我也來反哺一下社區~希望對大家有幫助,大家有什么問題或是想知道的都可以私聊我,我盡力幫助盆友們~。看了面經,就大概知道現在社招會問哪些方面的問題,看了下來大概就分為三劍客基礎、框架全家桶使用及原理、前端工程化、計算機網絡、瀏覽器、前端各領域熱點話題(錯誤監控,性能監控,微前端,跨端開發...),然后可以列出自己的思維導圖,進行查漏補缺。
???? js基礎我主要是看書,你不知道的js 上和中看完了一遍,紅寶書看了幾個章節,這樣的技術書需要反復看,每次看都有不一樣的收獲。前端熱點話題這個是因為我有報名前端早早聊,會聽聽業界大佬們的分享,這是一種學習的方式,當然也可以找找相關話題的好文章,理性報名~。關于看文章這回兒事,也有點小建議給盆友們,大家學習時盡量看官方文檔,比如mdn。學習框架,看源碼,vue源碼我看了很多次,理解了很多次,不要在才開始學習時就去看別人消化之后的文章,別人消化之后輸出的文章是別人的收獲,可以作為你后續查漏補缺的一種方式,但是不應該是你學習的范本~
????另外比較重要的就是算法,在我開始準備面試階段,沒那么看重算法,每天刷1-2個題,而且還只是ac就行,并沒有去思考最優解,思考時間復雜度和空間復雜度該怎么優化一下,這樣是沒有提高的。大學有學過一些簡單的數據結構和算法,知道幾種常見排序的思路能夠馬馬虎虎手寫出來,但是在字節三面的時候還是入坑了(可以看下面字節的面經),算法是一個長期積累的過程,并不是在短時間可以快速提高的,所以盆友們注意在平時就要積累自己的算法能力哇!!!在字節三面后深刻意識到自己的問題,開始將大量的時間投入到算法練習中(大家理性看待哇,不要盲目投入大量的時間在投入多回報慢的事情上,我是在明白自己的基礎已經準備的差不多的情況下,這里也可以看出來積累的重要性)在后面接近一個月的時間里反復練習算法,leetcode刷了80個題,簡單和中等參半,困難3個題,每個題基本上都做了3次左右,每個題都會思考用哪個算法比較好,為什么?我有看過一個人說,練習算法最好從 樹 開始,因為樹的各類題目基本上都會用到遞歸算法,理解了遞歸思想,其他算法思想就能夠更好的掌握,后續找到鏈接了我再貼上來~ 練習下來發現這位大佬說的真好,是這個理(雖然我并沒有從樹開始練習,后悔沒有早看到)。
????項目相關的準備,之前有看過一篇盤沖大佬的文章我在阿里招前端,我該怎么幫你?,對我幫助很大,希望也可以幫到泥萌~
面試記錄
????7月16日到7月24日 妥妥的水逆期鴨!!!(看來和深圳么緣,面的深圳崗都失敗了...
知乎
????知乎面試體驗很棒,推一波知乎二面面試官Lucas大佬,是《React狀態管理和同構實戰》的作者,二面沒有常規的面試題,會根據簡歷中項目不斷深入,提出讓你有思考有收獲的問題,我認為這是面試最好的狀態~。知乎的面試有點久了,當時也沒有記錄下來,大致回憶一下(遺漏的應該很多)~
一面
手寫題: 1. 畫一個田字格,其中有一個半徑是5px的圓距離右下格子下邊距和右邊距都為10px。
二面
三面
字節
一面
??問了很多項目相關的問題,基本上把簡歷上的項目問了個遍(一面問項目我也表示很疑惑呢...),可以列出來一些和實際業務沒太大關系的題目
1. jsBridge通信方式有哪幾種,各有什么優缺點,用哪種方式比較好? 2. 你知道錯誤監控怎么做的嗎?能監控哪些錯誤?有哪些局限性? 3. 項目中是怎么做錯誤處理的? 4. 基礎相關的題目:兩行文字,第二行超出了省略怎么做?
編程題:
1.以下代碼輸出什么?并用es5改寫它 javascript for(let i = 0 ; i < 5; i++) { setTimeout(()=>{ console.log(i); }) } console.log(i);
2.實現以下函數 javascript setQuery('https://www.baidu.com?a=1', {a:2,b:2}); // 輸出: 'https://www.baidu.com?a=2&b=2' // 注意:考慮邊界情況(如hash、url的 encode 和 decode)
### 二面
邏輯題:
兩瓶紅藍墨水先從紅墨水中擠一滴,放入藍墨水中,搖勻。
再從藍墨水中擠一滴,放入紅墨水中,搖勻。
問最后,紅藍墨水中 紅墨水與藍墨水的比例。
編程題:
sum(2)(1,2,3)(3).valueOf(); // 11三面
編程題:(當時算法能力太low了... 兩個題都沒做出來,三面掛...) 1. 給定一個正整數數組,對于數組中每一個區間都存在一個最小值,存在一個x值,x值為該區間最小值*區間數組的和,求x最大值的區間。
2. 分餅干
+二面(被其他部門撈起來繼續二面...)
算法題: 1. 連續子數組的最大和 (leetcode原題和三面第一題類似)
面試官本意是想考察一下在三面沒做出來的第一題,下來有沒有復盤,由于當時下來用暴力解法把三面第一題做出來了... 直接給面試官講了我做這題的解題思路,面試官一聽思路不太對,于是開始了算法填空題... 是的,你沒有看錯,算法填空題!!!面試官把解法的大體框架寫了出來,只需要我填上兩行代碼,然后我卻花了接近20分鐘把這兩行代碼填上。。太菜了!!面試官直接說你的算法能力在我這兒也過不了,于是我加了面試官的微信,想在后續的學習中如果遇到什么問題可以請教一下。面試官對我的幫助很大~ 字節的面試體驗也太加分了八~????在這一面之后,簡歷被鎖了,但是面試官后續有了解到我在百度和快手的三面都通過了,想讓我再試試他們部門!!
+二面
編程題:
1. eventbus實現一個發布訂閱模式。 2. 限制并發數。
+三面
編程題:
1. 實現 promise.run 串行執行promise(考慮promise.all是并行執行) ,注意: 結合reduce實現 2. 實現一個組件 每輸入4個字符 加上一個空格。 (注意一定要考慮邊界情況) 3. 做一道之前沒有做出來的題:連續子數組的最大和
在面試官好感+1 hr好感+1 部門也是我向往的,果斷選擇了字節!!!
騰訊
一面
二面(筆試面試)
5個編程題:
1. 字符串相乘 2. 無重復字符串的排列組合 3. 1234567 格式化為 1,234,567 4. 找出兩個數組的相同元素(注意考慮數組中存在對象的情況) 5.
shopee
一面
- 2)
編程題:
1. 判斷一個電話號碼是否是靚號?
輸入一個電話號碼 '15629384444' '15645673456'
至少滿足兩個條件,則為靚號: 1. 連續4個相同數字 2. 4個遞增的數字
快手
一面
手寫題: 1. 手寫promise.allSettled
2. 將短橫線變量命名換成駝峰命名(eg. get-element-by-id => getElementById) 3. 有序數組排序(最優解)參考LC:合并排序的數組
二面
算法題 1. 爬樓梯(動態規劃的方式/優化空間復雜度) 2. 實現以下函數:
getQuery('https://www.baidu.com?a=1&b=2') // {a:1,b:2}注意考慮邊界情況。
url decodeURI 與 decodeURIComponents 有什么區別?
三面
手寫題: 1. 實現以下函數:
transform('get-element-by-id') //輸出:getElementById GetElementByIdeg. #f1f2f5
考慮十進制轉十六進制 num.toString(16)
考慮用正則方式實現呢?
css題目: 1. 以下元素在頁面中展示幾行?
<span></span> <div></div> <img/>百度
一面
``` 2. webpack熱更新有了解嗎? 3. 原型鏈 4. cookie(可以講講自己的理解,可以從屬性,場景,作用來全面講解cookie) 5. 前端路由和服務端路由的區別? 6. webpack拆包的方式有哪些? 7. 如何減少首屏渲染時間? 8. 什么場景下用服務端渲染?服務端渲染有哪些優點? 9. vue-router的原理? 10. vuex的原理?
編程題: 1. 如何統計當前頁面setTimeout定時器的執行次數? 2. 實現 await myForEach(arr, callback); 3. 實現一個穿梭框,主要是左邊列表是待選列表,右邊列表是已選列表,點擊右邊列表中某一項時可撤銷選擇。
二面
編程題: 1. 實現vue-router 2. 實現一個類似于百度首頁輸入框,輸入內容時,會出現一個匹配關鍵詞的列表。(注意:考慮哪些優化的點,比如防抖,請求與響應的匹配)
三面(主管面)
好文推薦
我推薦的:
大佬推薦:
總結
以上是生活随笔為你收集整理的前端填空题_一年前端面试总结|入职字节|2020.8的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 28-最大值
- 下一篇: TypeError: unsupport