2021前端面試總結

你們看到這篇文章的話我應該已經從阿里離職加入新公司了,這篇文章是我對最近換工做面試的一個總結。css

先上結果吧,我前後面了 4 家公司:小紅書(口頭 offer)、滴滴(口頭 offer)、貝殼(口頭 offer)、快手(offer)。前端

準備階段

筆試開始有跳槽準備的想法開始刷 leetcode 到實際開始面試大概經歷了兩個半月。而我我的對於面試的前期準備按照如下幾部分按部就班的進行:webpack

  • leetcode 刷題;
  • JS & CSS 基礎;
  • React 基礎;
  • 工程化 & 架構 & 計算機基礎;
  • 基於簡歷的擴展

leetcode 刷題

刷算法題是如今社招面試的必考部分,也是令不少前端同窗頭疼的地方(包括我)。刷題是很痛苦的一個過程,最好找一個志同道合的小夥伴一塊兒進行(一我的真的很難很難)。這裏我就不分享刷題的經驗了(網上一搜一大把)僅分享下我對於刷題的大致節奏來給你們分享。web

leetcode 這邊我是和一個後端小夥伴是保持了天天 2-5 道不等的節奏從 1 月中旬開始刷直到面試開始(4 月初),總共刷了 147 道簡單題,11 道中等題。固然個人後端小夥伴還會本身刷中等和困難題,我對本身的認知就僅限在簡單題,而對於 3 年左右社招的前端來講,簡單題就夠用了。面試

20210525140125.jpg

JS & CSS 基礎

筆者一直從事中後臺相關的開發,對於一年都寫不了幾行 css 的我直接選擇忽略了複習 css...(不建議你們這麼作...),而對於 JS 基礎我是按照如下幾個維度複習(學習)的。算法

  • 類型編程

    • 類型轉換
    • 類型判斷
    • 深淺拷貝
  • 函數
  • 原型 & 原型鏈
  • new 操做符
  • 對象建立 & 繼承
  • 執行上下文後端

    • 變量(活動)對象
    • 做用域 & 做用域鏈
    • this
  • 閉包
  • EventLoop瀏覽器

    • task
    • micro task
  • ES6 & next緩存

    • let & const
    • Map、Set、WeakMap、WeakSet
    • 箭頭函數
    • 迭代器
    • for of
    • Generator
    • Promise
    • async、await
    • class
    • import、export
  • 模擬實現

    • bind、call、apply
    • new
    • Promise
    • instanceOf
    • map、filter、reduce、flat
  • 編程技巧

    • 實現 compose
    • 實現 curry
    • 實現深拷貝

React 基礎

  • 生命週期

    • mount 階段
    • update 階段
    • unmount 階段
    • error
  • JSX
  • setState

    • 同步異步
  • 虛擬 DOM

    • diff 算法
  • 事件系統
  • Hooks

    • 原理
    • useEffect
    • useCallback
    • useRef
  • Fiber
  • 狀態管理
  • 路由管理
  • 性能優化

工程化 & 架構 & 計算機相關

  • webpack
  • babel
  • cdn 原理
  • 瀏覽器緩存
  • 基本的數據結構和算法

基於簡歷的擴展

  • 組件 & 組件庫設計
  • 微前端 & 其餘方案的設計

    • 原理
    • 子應用加載
    • 沙箱隔離
    • 路由劫持
    • 應用間通訊

面試階段

挑選機會

找機會我是採起獵頭+內推兩種方式同步進行的。

找獵頭的話能夠發掘不少機會不錯而且本身沒有關注到的公司和職位,而且獵頭會基於你的自身狀況有選擇性的推薦職位並全程陪跑:前期機會溝通、每輪面試跟進、後期 offer 推動甚至薪資 argue(若是自己項目壓力大而且想看機會的同窗能夠考慮,真的很省心,可是須要找到一個靠譜的獵頭)。

找前同事內推的話能夠更直接的瞭解這個公司的氛圍、工做內容以及其餘雜七雜八的事,而且真心想挖你的同事也會幫你和老闆還有面試官說好話~

在篩選機會以及安排面試的時候大部分同窗想的都是先找幾個小公司練練手,而後開始投大廠。其實我也是這麼作的,只不過我選擇的面試的公司都是我有興趣而且面試經過可能會去的。

  • 第一波:我會選擇具備必定規模而且我以爲有發展前景的獨角獸公司;
  • 第二波:我會選擇一些二線廠子的核心業務部門或者我以爲有前景的賽道;
  • 第三波:一線大廠或者熱門賽道的頭部公司;

面試

面試這邊的話我一共是面了 4 家公司,原本還想接着面面,可是說實話每家公司至少 4 輪面試,4 家公司我一共面了 18 輪,平均下來 2 天至少一輪面試,面到後期明顯感受疲憊(所以建議你們仍是適可而止量力而爲吧~)。

筆者一直從事 B 端相關的前端開發,面了這麼多輪總結起來 B 端相關的熱點詞彙:微前端、組件庫、低代碼、搭建。

一面

一面以基礎爲主(也有基於項目考察基礎知識的):自我介紹、JS + CSS 的考察、框架的考察、計算機基礎相關的考察、算法題。

下面列出我在面試時候遇到的一些考察點:

  • 做用域的理解
  • EventLoop

    • 原理理解
    • 考察執行結果順序的一道題(網上不少,基本差很少)
  • Promise

    • 基本概念的考察
    • then、catch 鏈式調用順序的一道題(網上不少,基本差很少)
  • 深拷貝的實現
  • 裝飾器的原理
  • call、apply、bind 函數的模擬實現
  • for 循環和 for of 循環的區別是什麼
  • React diff 算法的原理
  • React setState 同步異步的原理
  • React Fiber 的原理,爲何要引入 Fiber
  • Redux 的原理,解決了哪些問題
  • 瀏覽器緩存,項目中如何更合理的利用緩存
  • 水平垂直居中的實現
  • flex:1 0 0 對應的含義是什麼
  • 實現一個樣式
  • BFC 是什麼?用來解決什麼問題?

下面是基於個人項目和簡歷的一些問題:

  • 業務組件庫的設計思路
  • 組建的按需加載怎麼實現的
  • webpack 中 import require 的原理
  • 性能優化的思路

二面

二面已經開始基於項目考察知識點,問題大可能是基於簡歷上的項目延展出來的。

下面列出我在面試時候遇到的一些考察點:

  • 微前端是什麼?解決了哪些問題?爲何使用微前端?和 iframe 的對比?
  • 微前端沙箱隔離的原理?
  • 微前端落地選型時候的思考?
  • 除了使用微前端框架在微前端上還作了哪些擴展?
  • 業務組件庫怎麼設計的?爲何要使用業務組件庫?
  • 業務組件庫如何推廣?在落地期間遇到了哪些問題?

三面 & 四面

三面 & 四面不少都是考察業務的理解能力和我的綜合能力考察。

  • 對當前工做業務域的理解;
  • 曾經工做遇到過最大的挑戰是什麼、怎麼解決的、有什麼收穫;
  • 對技術深度和廣度的理解;
  • ...

HR 面

HR 面的話都是考察軟實力相關,也會詢問一些業務問題,這裏就不過多的贅述了。

總結

其實離面試到如今已通過去了好久了,能記起的東西仍是有限,仍是差不少東西的,請你們諒解。這裏但願你們都能拿到本身滿意的 offer。

最後打個廣告:

咱們是快手商業化廣告團隊,目前還有大量 HC,感興趣的聯繫我,我發你 JD,你發我簡歷哈哈哈。

相關文章
相關標籤/搜索