2018年底前端面試總結

萌小屋發表於2019-02-16

主要是整理一些自己還記得的面試題。很多題目會根據專案內容提問,現在只記得一些比較常規的問題,後面想起來會做一些補充。標註重點的是頻繁出現的,也確實很重要的知識點。

css

  • 盒子模型:ie與其他瀏覽器的區別,如何改變盒子模型
  • 圖形:實現扇形/圓環/梯形/三角形等(建議掌握常見圖形實現)
  • 定位:position有哪些值並描述作用,z-index使用條件以及優先順序
  • flex:有哪些屬性並描述作用,如何實現柵格/聖盃佈局/流式佈局等(重點,建議記住所有屬性並掌握常見使用場景)
  • 佈局:垂直居中/九宮格/固定某個自適應某個的方法有哪些(建議每個常見佈局多瞭解幾種方法)
  • 使用過哪些css3特性
  • 動畫:animation有哪些屬性值及其基本使用,實現一個上拋後下墜的動畫,jquery中是如何實現動畫的,知道或使用過哪些動畫庫
  • 轉換:transform有哪些屬性值以及基本使用

js

  • 基本資料型別和引用資料型別分別有哪些及其區別
  • 原型/原型鏈是怎麼樣的,分別使用es5和es6實現繼承,繼承方法有哪些並各有什麼優缺點,你在專案中哪裡使用到原型鏈/繼承(重點)
  • 有哪些設計模式,你在專案哪裡使用到
  • 說說閉包和鏈式呼叫,你在哪裡使用到閉包
  • this指向問題(一般會有具體的程式碼)
  • 說說JS的記憶體機制及垃圾回收機制
  • call/apply/bind的作用與區別
  • 有哪些遍歷陣列的方法及其特點
  • 實現一個深拷貝的方法
  • 函式節流和防抖的實現
  • 陣列去重的實現方法(建議掌握多種方法,並知曉其特點)
  • 陣列的排序,亂序,找出中位數(建議掌握多種方法,並知曉其特點)
  • 二叉樹的三種遍歷方法
  • 使用es6實現一個工廠模式
  • 實現一個觀察者模式(重點)
  • 實現一個lazyMan(請自行搜尋)
  • 線性資料結構轉換成樹形結構
  • 求陣列中最大和的連續子陣列
  • 封裝一個只能執行一次的函式 once(fnc),後面執行返回undefined
  • 如何解決數字運算精度問題,比如0.1+0.2!=0.3
  • 使用過哪些es6特性
  • let/const/var的區別
  • 普通函式和箭頭函式的區別
  • Promise和async/await的使用及其異同(重點,最好能使用es5實現Promise)
  • 運算結果:true == `1`, 3 + `2`, 3 * `2`, a=1;b=a++ 等等

通訊協議

  • http狀態碼有哪些及其含義(重點,建議除了404和200再至少記住常見的10個)
  • http控制快取的方法以及區別,什麼情況會出現304,你的專案中是如何配置的(重點)
  • https與http的區別,https的原理及其侷限性,說說http2
  • 請求方法有哪些及其區別,請求報頭/響應報頭有哪些
  • 登入註冊除了https還有哪些可以增強安全性
  • WebSocket是什麼及其特點

vue/react

  • vue的內建元件有哪些,nextTick有什麼用
  • vue/react元件生命週期(重點,建議描述完整的過程,並描述各個鉤子函式可以做哪些事情,而不僅僅是說出鉤子函式)
  • vue的雙向資料繫結原理(重點,除了監聽資料變化,建議再瞭解一下資料變化後到更新dom的過程,主要是釋出-訂閱者模式)
  • vue的virtual-dom原理及其更新演算法
  • vue-router路由的兩種模式有什麼區別
  • 在vue中陣列的哪些操作方法可以觸發vue檢視更新,為什麼
  • vue父子元件之間如何通訊
  • vuex的基本使用原理,你在哪些專案的哪些地方使用到
  • 開發過哪些元件,依據什麼理念或方法去設計開發元件
  • spa有什麼特點,服務端渲染有什麼特點
  • vue和react有什麼區別(如果使用過不止一個框架,那麼很可能會問類似的問題)
  • 最近react更新了哪些內容(主要是新版本的特性,可以適當跟之前版本對比)

瀏覽器及其他

  • 瀏覽器輸入url到顯示出頁面內容的過程(重點,建議至少要從建立通訊和瀏覽器解析渲染角度去說)
  • Dom 插入/刪除/查詢/移動操作,分別有哪些方法
  • gulp與webpack的區別
  • webpack的基礎配置有哪些(重點)
  • 專案中你在webpack做了哪些優化,專案中你打包成哪些檔案,有哪些加快build的優化方法(重點)
  • 有哪些優化網站效能的方法,有哪些圖片優化方法(重點)
  • 一個頁面有非常多內容的時候如何優化,比如一個非常長的列表
  • 同源策略是什麼,跨域有哪些解決方法,jsonp原理是什麼(重點)
  • 如何實現上報js報錯,如何監聽js報錯
  • Hybrid App實現Native與H5互動的方法有哪些,需要注意什麼事情,你在專案中是怎麼做的
  • Hybrid App如何除錯,如何定位問題
  • Service worker是什麼,有什麼特點,HTTP快取與Service worker快取有什麼區別
  • 圖片上傳前怎麼實現圖片預覽,上傳中怎麼獲取進度
  • 後臺系統怎麼設計許可權控制
  • 遇到過哪些相容性問題(有時候會針對pc、移動端問)

常規題

  • 你做的最滿意/最複雜的一個專案是哪個,你遇到最難/最棘手的問題有哪些,是如何解決的
  • 最近有在研究什麼東西
  • 平時的學習計劃是怎樣的
  • 技術上想從哪些方向發展/學習
  • 你的職業規劃是什麼
  • 為什麼從上家公司離職

總結

上面遇到的問題有些是筆試,有些是交談問的,也有些都出現過。筆試的時候建議先易後難,儘量不要留白,可以描述一下思路,或者寫幾個關鍵點,也比留白好很多,因為面試官未必會針對你沒答出來的題目再次進行提問。另外,一些單詞要記得如何讀寫,不然很多時候你知道這個東西,但是你卻表達不出來,也是要扣分的。總之要深度理解、舉一反三、邏輯清晰、表達流暢


以上,僅供參考。

相關文章