2020面試準備集合
先列題目,而後加答案。html
JS
- Eventloop
- js爲何要實現成單線程的,有什麼好處?
- 進程線程的區別
- 閉包的含義、原理、優缺點、使用場景、如何回收
- JS數據類型有哪些,怎麼作類型判斷?
- 類型轉換有哪些?
- 執行上下文
- new操做符作了什麼
- 解釋構造函數、對象、原型鏈之間的關係
- 繼承的幾種方式以及優缺點
- 實現原型式繼承
- 實現構造函數繼承
- 面向對象的屬性
- 設計模式有哪些,項目中使用到哪些
- 瀏覽器事件有哪些過程? 爲何通常在冒泡階段, 而不是在捕獲階段註冊監聽? addEventListener 參數分別是什麼 ?
- new String('a') 和 'a' 是同樣的麼?
- js中的裝箱和拆箱瞭解嗎?
- 節流與防抖原理
- 面向對象和非面向對象有什麼區別?
- 高階函數是什麼,怎麼去寫一個高階函數
- 爲何reducer要是個純函數,純函數是什麼?
- 簡單說一下PWA
- call/apply/bind原理實現
- 操做dom有哪些方法?
- 怎麼用原生js實現一個輪播圖,以及滾動滑動?
- 怎麼實現上傳下載的功能?
- Map有哪些方法?
- 知不知道僞數組對象?
- 如何用原生JS來讀寫Cookie?
- 本地存儲
- PWA
- 簡述自定義事件實現方法
- parseInt() 和 array 的 map 方法的參數
- JSON 對象的深度克隆
- objec.freeze和Object.seal的區別
- 編寫函數 convert(money) ,傳入金額,將金額轉換爲千分位表示法
- js浮點數運算不精確,如何解決
- 實現函數的柯里化
- 前端存儲方式,以及它們之間的優缺點
- 怎麼從十萬個節點中找到想要的節點,怎麼快速在某個節點前插入一個節點?
- 如何找到一個字符串中最長的兩個字符串?
- 正則用過嗎?exec, 匹配一個手機號?去空格?
- 給你一億個數,是連續的,怎麼找出兩個不存在的數
- 怎麼實現一個sleep ,手寫一個promise
- 作一個表格,一分鐘刷新一次,怎麼實現
- 有了解WebWorker的實現原理嗎,私下有實踐過嗎
- 平時作項目有沒有考慮過內存的問題?怎麼解決的?
- 異步處理的方案有哪些?
- 模塊化的演化過程?
- 模塊化介紹一下,什麼是編譯時優化?
- 怎麼打斷點,如何肯定一個結果來自於哪一個函數
數組
- Array的unshift() method的做用是什麼?如何鏈接兩個Array?如何在Array裏移除一個元素?
- 數組去重
- 數組亂序
- 有哪些排序算法,時間複雜度是多少?何時快排的效率最低?
- 改變數組和不改變數組的方法分別是哪些?
- 給定一個數組和一個正整數N,求一個和小於N的最長連續子數組
- 給定兩個有序數組,合併爲一個有序數組。不準使用 js 的 concat 和 sort 方法
- sort()的原理
- 不產生新數組,刪除數組裏的重複元素
- 冒泡排序和快速排序的區別
ES6
- Promise的原理
- ES6 module
- 談一下generator函數
- 說一下對async和await的理解
- Map有哪些方法?
- 箭頭函數,this指向
- 擴展符的做用
- 新增數據類型有哪些?
- 新增的數據結構有哪些?
- ES6 裏 let 和 var 的區別
- 解釋ES6的暫時性死區
http
- 講一下AJAX Request
- 跨域
- 頁面加載的過程(輸入URL後發生了什麼?)
- TCP三次握手和四次揮手,擁塞控制
- TCP和UDP的區別
- HTTP請求頭和響應頭都有些什麼字段?
- SSL加密原理
- HTTP/HTTPS/HTTP2有什麼區別?
- HTTP2的優點
- HTTP 裏的304狀態碼瞭解嗎?100和307?
- 進程通訊,有名和匿名管道
- 瀏覽器緩存
- cookie、session、token的區別?
- 若是瀏覽器關閉了再打開, 請求仍是from cache嗎?
- Service Worker 瞭解過麼?
- 爲何用 token 就能夠防止 csrf 攻擊?
- token 的刷新機制是怎麼樣的, 爲何這麼設置?
- 靜態文件的瀏覽器緩存如何實現
- method有哪些方法,分別是什麼意思?post和put的區別?post與get的區別?
- Ajax 底層實現,readystate 有哪些
- 怎麼實現標籤頁的通訊
- OSI七層模型
- 反向代理知道麼,Nginx
- 有沒有了解過CDN
- 怎麼實現標籤頁的通訊
框架
- vue響應式原理
- vuex原理
- 組件間的通訊方式及原理
- MVC和MVVM瞭解嗎?有什麼區別?
- Vue是怎麼實現對數組變化的檢測的
- key的做用是什麼?
- jsx的原理
- Virtual DOM 和 diff 算法
- 腳手架作了什麼功能?
- vue-router原理
- Vue 裏 v-if 和 v-show 的區別
- react生命週期
- react hook 相比較 class, 哪些不太容易實現?
- react 怎麼作優化?
- 聊一下高階組件 hoc
- 聊一聊組件設計, 領域模型
- redux原理
- setState 更新機制
- fiber架構
- react hook 原理
- 原生事件和 React事件的區別
- 高階組件(HOC), Mixin, hook 對比和用處.
- webpack打包流程
- webpack如何處理圖片、 CSS 文件?
- webpack作了什麼優化?
- webpack熱更新原理
- webpack 底層 Tapable 原理
- webpack 如何實現異步加載
- babel原理
- transform-runtime有什麼做用?
- babel-runtime和babel-polyfill的做用和區別
- babel 如何將字符串解析成 AST ?
- 講一下AST 語法樹
- webpack 和 gulp的對比
- node事件循環
- node架構中的容災
- node 的多線程,高併發,安全
- 談一下stream
- pm2原理
- 有沒有讀過 egg 源碼
- 小程序跟 h5 的區別是什麼? [小程序底層實現]
- 講一下 taro 小程序的底層原理,跟 mpvue 的區別 [AST, babel
- SPA 項目如何監控 pv, uv 值
- 聊一下 axios .有什麼優勢, 跟 fetch, ajax對比
- axios 爲何既能夠在瀏覽器發請求,又能夠在node層發請求?
- 客戶端渲染和服務端渲染的區別
監控
- 如何處理項目的異常
- error 怎麼捕獲?
- SPA 項目如何監控 pv, uv 值?
- 如何在用戶刷新、跳轉、關閉瀏覽器時向服務端發送統計的數據?
- 錯誤日誌上報遇到的問題.
- 負載均衡方式和容錯機制
- 怎麼計算在一個頁面上的停留時間
移動端
- 移動端如何優化首頁白屏時間過長 ?
- 移動端優化方式? 離線包是如何實現的?
- 有幾種webview?
- webview和native的交互方式有哪些?
- 怎麼排查交互中的錯誤?
- 瀏覽器內核有哪些,移動端用的是哪一個?
- 移動端頁面適配解決方案
安全
- 前端安全方面有沒有了解?XSS和CSRF如何攻防?
- sql 注入知道麼?
- 爬蟲與反爬蟲
其餘
- 文件指紋怎麼生成?
- npx是什麼?
- 說一下對 package.json 的理解,它都有哪些做用?
- webgl用過嗎?
- svg和canvas的區別
- git push -u 是什麼意思
- git rebase解釋下,git merge 和git rebase區別
- 能寫一個二叉樹麼,怎麼去遍歷
- 僞類知道嗎,有哪些?
- Xhtml和html的區別?
- 二維碼怎麼工做的,掃描pc端的二維碼,怎麼讓pc端登陸?
- 怎麼作一個實時的聊天系統
- 當消息有延遲的時候,怎麼保證消息的正確順序?
- Mysql的基本寫法
- mysql的索引用的什麼
- mySql和noSQL區別
- meta標籤
- em,rem,px的區別
- 簡述動畫寫法
- 維護的公共組件須要發佈大更新, 如何作?
- 聊一下微服務serverless?
- 微前端了解嗎?
- 可視化表單瞭解過麼?
- typeScript瞭解過嗎?
- 平時處理過什麼兼容性?
歡迎關注本站公眾號,獲取更多信息