2020年底前端面試總結
阿新 • • 發佈:2021-01-17
總結
- 座標:上海,運營轉行
- 時間:12月,共面了16家左右
- 求職的一些經驗:
(1)先找小公司練練手增加信心;
(2)沒自信的時候跟自己說去試試吧,萬一成了呢;
(3)把找工作看成一場馬拉松,急不得真的急不得!
(4)面試結束後進行總結,不會的題目搞會因為可能下一場面試還會碰到;
(5)簡歷上的專案多測試下,面試當場點出bug真的很尷尬 - 關於面試題目:
(1)總體來說,js、http、框架問的比較多,css問的比較少,html基本沒問
(2)js基礎蠻多問到的,比如陣列、物件的方法,建議複習下;
(3)React和Vue框架類會問到實現原理,可以看下官網;
詳細面試題目
下面列出來的都是面試中不止出現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底層原理
• 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時還沒有請求到結果報一個錯誤