2021首份字節面經珍藏版 | 前端開發

引言

你們好,小編在有了一點前端項目經驗後,自我感受良好,感受Ctrl + C / Ctrl + V 大法就能打遍天下了,因而,機緣巧合下,衝刺了一把字節的面試。經歷過字節筆試的過程後,對前端開發有了新的認識。下面簡要談談個人感覺。前端

經歷

筆者採用的是在線視頻面試,直接視頻通話在線作題。一來先自我介紹,而後作題,你和麪試官會有一個操做界面,面試官會現場把題目發給你,看着題目,就能夠在中間的playground代碼編輯區寫答案了。筆試題大概有3題,可能根據作題狀況,面試官會酌情增減。面試

小編作了3題算法

  1. 第一題基礎題,考察原型鏈方法調用輸出結果,基本概念把我繞暈了,出錯;
  2. 第二題算法題,在面試官的指導下,修復了部分低級錯誤,調試作了出來;
  3. 第三題算法題,在本身寫出大概邏輯的狀況下,不知道哪裏犯了低級錯誤,未調試成功;

不得不稱讚一下字節的面試官,很親切的開發小哥,雖然小編很菜,可是讓小編感受交流很舒服,會敲代碼又會溝通的大神,很敬佩。數據庫

思考

  1. 首先,C/V大法直接pass,由於是要在線直接手敲代碼的,沒有地方Ctrl+C,由於是在線筆試,按道理你也能夠搜索答案,可是面試官直接盯着你呢,你想幹啥;
  2. 不過也不是徹底手敲,字節在線面試用的牛客網在線作題,仍是有語法提示的,因此你只要記得基本的js的語法,也能夠寫出來,問題不大。不過前提仍是你知道有哪些API,而不是遇到問題就直接搜索答案才能知道的那種;
  3. 本身現場手敲代碼,仍是不夠熟練,由於平時能複製來用的代碼,爲啥要手敲呢?沒錯,面試要手敲,因此以後咱們要養成手敲代碼的習慣,一是爲了記住這些代碼,二是還能提升打字速度
  4. 最後就是,算法算法算法,框架什麼的不是重點,底層、深層次的邏輯,纔是最重要的

總結

面試前郵件裏就說了,先要準備對系統設計的認識,這個我卻是能吹吹,可是面試官沒問。這裏我把小編總結的內容分享出來。後端

問題以下:安全

如何從一個需求落實到一個系統設計,如何衡量兩個不一樣設計的好壞,如何在各類限制下(人員、時間、資源等)選擇其中更合適的設計,以及提高該設計的可拓展性等前端框架

小編腦補吹牛場景:微信

  • 從一個需求落實到一個系統設計,markdown

    1. 首先進行需求分析,根據具體業務需求整理出功能點和大體的產品方案,注意挖掘出隱藏需求,較難實現的部分也須要及時調整
    2. 根據方案作原型設計
    3. 根據原型設計來定架構方案和技術棧,接口數據結構,定數據庫表結構,後端數據結構,模塊規劃等
    4. UI設計後,前端這邊:根據須要調整接口數據結構,定前端DOM渲染數據結構,開發文件目錄,模塊劃分等
    5. 開發,測試,迭代,優化
  • 如何衡量兩個不一樣設計的好壞 從兩個角度考慮數據結構

    1. 一是開發者的角度,看模塊、代碼結構的設計是否方便開發,易於維護和擴展,性能如何,代碼規範是否合理
    2. 二是用戶的角度,看系統界面是否美觀,操做是否流暢和簡便,打開速度快不快
  • 如何在各類限制下(人員、時間、資源等)選擇其中更合適的設計

    1. 人員方面,選擇開發者儲備多的技術棧,好比若是市場調查Angular開發者很難招,那就選擇Vue/React
    2. 時間方面,時間緊張時就作MVP,先作最核心、最重要的功能,沒必要要的功能日後延期,後續再迭代優化
    3. 資源方面,資源不足時就考慮現有資源能實現的最有用的功能有哪些,一樣也是功能簡化的思路,而後經過已經實現的這部分功能,去獲取或者申請更大的資源
  • 提高該設計的可拓展性

    1. 文件目錄結構合理,類別清晰,若是添加相關功能,要一眼就能看出來加在哪裏合適

    2. 數據結構設計時要儘量考慮將來可能還會增長哪些參數,留好口子,好比你在狀態管理裏面定一個變量,那麼能夠先定一個父級變量再把當前要用的變量放進子變量裏,這樣的話,假如以後又須要加一個相似這個變量的數據的時候,就能夠加在子變量裏,這樣總體數據結構就不會太亂

    3. 模塊或函數多作拆分,注意一個模塊負責一塊功能,並標註清楚

    4. 公共模塊、方法、變量、組件須要抽出來模塊間或者項目間共享,提供複用率

還有就是題目取材自leetcode,沒說難度,好傢伙,小編簡單題都敲不全,這個確實要下點功夫學習下,有經驗的朋友說要求大概在中級難度水平,我理解意思是若是你中級難度信手拈來,你確定沒問題,若是中級難度稍微要花點時間,那也能夠,只須要稍加練習便可。

總結來講就是,刷leetcode吧

leetcode

重磅重磅!!

字節跳動在上海的前端團隊招聘啦,目前所作的業務是飛書文檔。

30 – 60K · 15薪

找我內推的好處:

  • 簡歷優先篩選
  • 面試過程及時跟進
  • 優先接觸直屬leader

接觸底層前端技術,與大牛們共舞!

有興趣能夠前來諮詢

職位描述

  • 負責企業級溝通及協做辦公工具Lark產品的研發,包括但不限於在線表格;
  • 負責高質量的設計和編碼;承擔重點、難點的技術攻堅;
  • 和產品經理配合,深度參與產品需求討論,功能定義等;
  • 主要前端框架:React、Electron等。

職位要求

  • 1年及以上Web前端開發經驗;
  • 熟練掌握計算機相關基礎知識,具備良好的設計和編碼品味,熱愛寫代碼能產出高質量的設計和代碼;
  • 掌握WEB前端開發技術: JavaScript(含ES6)、HTML、CSS、DOM、協議、安全等;
  • 有表格相關領域研發經驗優先,有客戶端開發經驗優先,有知名開源做品優先;
  • 積極樂觀,認真負責,樂於協做。

辦公環境:

環境1 環境2 環境3 環境4