主要是整理一些自己還記得的面試題。很多題目會根據專案內容提問,現在只記得一些比較常規的問題,後面想起來會做一些補充。標註重點的是頻繁出現的,也確實很重要的知識點。
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、移動端問)
常規題
- 你做的最滿意/最複雜的一個專案是哪個,你遇到最難/最棘手的問題有哪些,是如何解決的
- 最近有在研究什麼東西
- 平時的學習計劃是怎樣的
- 技術上想從哪些方向發展/學習
- 你的職業規劃是什麼
- 為什麼從上家公司離職
總結
上面遇到的問題有些是筆試,有些是交談問的,也有些都出現過。筆試的時候建議先易後難,儘量不要留白,可以描述一下思路,或者寫幾個關鍵點,也比留白好很多,因為面試官未必會針對你沒答出來的題目再次進行提問。另外,一些單詞要記得如何讀寫,不然很多時候你知道這個東西,但是你卻表達不出來,也是要扣分的。總之要深度理解、舉一反三、邏輯清晰、表達流暢。
以上,僅供參考。