1. 程式人生 > 其它 >2020年底前端面試總結

2020年底前端面試總結

技術標籤:知識總結面試reactjsvue前端

總結

  • 座標:上海,運營轉行
  • 時間:12月,共面了16家左右
  • 求職的一些經驗:
    (1)先找小公司練練手增加信心;
    (2)沒自信的時候跟自己說去試試吧,萬一成了呢;
    (3)把找工作看成一場馬拉松,急不得真的急不得!
    (4)面試結束後進行總結,不會的題目搞會因為可能下一場面試還會碰到;
    (5)簡歷上的專案多測試下,面試當場點出bug真的很尷尬
  • 關於面試題目:
    (1)總體來說,js、http、框架問的比較多,css問的比較少,html基本沒問
    (2)js基礎蠻多問到的,比如陣列、物件的方法,建議複習下;
    (3)React和Vue框架類會問到實現原理,可以看下官網;
    (4)大公司可能都會線上視訊(牛客網)寫程式碼,可以提前模擬下緩解緊張,當然多面面也就習慣了;

詳細面試題目

下面列出來的都是面試中不止出現1次的(除寫程式碼題):

CSS:

• 選擇器的順序
• 定位有哪些
• BFC
• 垂直居中/兩欄分佈/三欄分佈(其中某個寬度自適應)

JS:

• ES6新特性
• promise
• TS的好處,為什麼說能提高開發效率
• 作用域,閉包及為什麼用閉包
• this指向
• 防抖和節流
• call、apply和bind的區別
• 原型鏈
• 作用域鏈
• 陣列有哪些方法,幾種遍歷方法的區別、物件有哪些方法
• new一個物件的過程
• 資料型別有哪些,怎麼判斷,typeof null是什麼

DOM:

• 事件冒泡與事件捕獲
• 虛擬DOM是什麼,怎麼DOM DIFF
• 事件委託,如何實現

HTTP:

• 瀏覽器的事件迴圈,巨集任務與微任務
• 快取有哪幾種,協商快取和強快取的區別
• 垃圾回收
• 狀態碼
• 跨域,如何解決
• 三次握手和四次揮手
• 瀏覽器渲染頁面的過程,哪些修改觸發迴流,哪些觸發重繪
• 使用者輸入url到最後呈現頁面中間的過程
• 程序與執行緒的區別
• cdn是什麼

框架:

• Vue如何實現資料響應式
• Vue的生命週期
• Vue-router的使用,路由守衛
• Vuex如何使用
• Vue元件間通訊有哪幾種方式
• Vue-router底層原理

• Vue的nextTick
• Vue3與2的區別,解決了哪些問題(因為我有Vue3的專案)
• Redux如何使用
• React的生命週期
• React元件間通訊有哪些方式
• React的hooks原理了解多少
• Vue與React的區別

演算法:

• 斐波那契數列
• 二分法

專案:

• 專案是怎麼實現的,為什麼這麼設計,為什麼用這種方法實現,有什麼缺點

其他:

• 為什麼想轉前端
• 學習的方式,什麼渠道,學哪些

碰到的當場寫程式碼題目分享:

  • (1)羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M 。分別代表:
    I 1
    V 5
    X 10
    L 50
    C 100
    D 500
    M 1000
    羅馬數字 2 寫做 II ,即為兩個並列的 1。12 寫做 XII ,即為 X + II 。 27 寫做 XXVII, 即為 XX + V + II 。
    寫一個函式實現將數字轉換成羅馬數字
  • (2)寫一個函式對陣列去重
  • (3)實現深拷貝函式,有引用自身怎麼辦
  • (4)css實現一個圓/三角形/四分之一圓
  • (5)1.將最後一個 li 標籤背景色改為 red ;2.js 刪除或者css 隱藏掉 p 標籤(css 方式至少 3 種方法) ; 3.實現水平三等分佈局(至少 2 種方法) ; 4.點選任何一個 li 標籤,打印出它的序號。比如點選第 1 個,序號為 0 ;
/*注:不要修改 html 程式碼*/
<ul class="test4" id="test4">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <p>4</p>
</ul>
  • (6)用setTimeOut實現setInterval
  • (7)從0到10000,算出裡面出現的0的次數總和
  • (8)實現ES6中的模板字串的功能
  • (9)封裝http請求方法,超時控制,超過3000s時還沒有請求到結果報一個錯誤