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