1. 程式人生 > 其它 >前端面試題大彙總

前端面試題大彙總

HTML

  1. 什麼是 HTML 語義化,有什麼好處
  2. HTML5的新特性?
  3. 為什麼要在html檔案開頭加上一個<!DOCTYPE html>
  4. DOCTYPE的作用,嚴格與混雜模式的區別,有何意義
  5. HTML5為什麼只需要寫<!DOCTYPE HTML>
  6. 請寫出table標籤下面會包含哪些標籤元素
  7. 很多網站不常用table iframe這兩個元素,知道原因嗎?
  8. jpg和png格式的圖片有什麼區別?
  9. 常用瀏覽器有哪些,核心都是什麼?
  10. a標籤在新視窗開啟連結怎麼加屬性?
  11. form標籤上定義請求型別的是哪個屬性?定義請求地址的是哪個屬性?

css

  1. 元素水平垂直居中的方法
  2. flex佈局介紹。
  3. css盒模型中,IE盒模型和標準盒模的區別。
  4. 選擇器的優先順序。
  5. css中link和@import的區別。
  6. position的屬性。
  7. 介紹下和偽元素和偽類。
  8. 如何清除浮動。
  9. less 和 sass是什麼?他們的區別。
  10. 如何實現頁面適配 簡寫程式碼
  11. 原生複選框如何去點選改變裡面的樣式?比如把點選勾選的樣式變成圓圈的樣式?
  12. 瞭解過處理相容性的問題嗎?
  13. 標準的CSS的盒子模型?
  14. 說下盒模型?
  15. 與低版本IE的盒子模型有什麼不同的?
  16. box-sizing屬性?
  17. 盒子模型在不同瀏覽器上的區別
  18. 不定寬高水平垂直居中?
  19. 文字在垂直和水平方向重疊的兩個屬性分別是什麼?
  20. 如何居中div
  21. 為什麼margin: 0 auto會讓div居中
  22. 對BFC的理解?
  23. 如何觸發BFC?
  24. BFC解決了什麼問題?
  25. 為什麼overflow:hidden能觸發bfc?
  26. Position定位值有哪些?
  27. absolute的containing block計算方式跟正常流有什麼不同?
  28. display有哪些值?說明他們的作用?
  29. display:none與visibility:hidden的區別?
  30. display:inline-block 什麼時候會顯示間隙?
  31. overflow屬性定義溢位元素內容區的內容會如何處理?
  32. visibility屬性有個collapse屬性值?在不同瀏覽器下以後什麼區別?
  33. position跟display、overflow、float這些特性相互疊加後會怎麼樣?
  34. 為什麼會出現浮動和什麼時候需要清除浮動?清除浮動的方式?
  35. margin和padding分別適合什麼場景使用?
  36. CSS常用選擇器
  37. 哪些屬性可以繼承?
  38. CSS優先順序演算法如何計算?
  39. CSS3新增偽類有那些?
  40. ::before 和 :after 中雙冒號和單冒號的區別?這2個偽元素的作用?
  41. Flex佈局
  42. 請解釋一下flexbox(彈性盒佈局模型),以及適用場景?
  43. 如何讓DOM元素不顯示在瀏覽器的可視範圍內?
  44. 一個滿屏品字佈局如何設計?
  45. 常見的相容性問題?
  46. 瀏覽器相容性有哪些
  47. CSS 前處理器
  48. CSS 3的新增特性?
  49. CSS 建立一個三角形
  50. CSS 初始化樣式是為什麼?
  51. CSS 優化 提高效能的方法有哪些?
  52. CSS 選擇器是怎樣被瀏覽器解析的?
  53. CSS Sprites
  54. CSS Hack是什麼?ie6,7,8的hack分別是什麼?
  55. CSS 引入方式?
  56. 移動端的佈局用過媒體查詢嗎
  57. 在網頁中的應該使用奇數還是偶數的字型?為什麼呢?
  58. 元素豎向的百分比設定是相對於容器的高度嗎?
  59. 全屏滾動的原理是什麼?用到了CSS的哪些屬性?
  60. 什麼是響應式設計?響應式設計的基本原理是什麼?如何相容低版本的IE?
  61. 視差滾動效果?
  62. li與li之間不可見空白間隔引起原因?解決辦法?
  63. width: auto 和 width: 100% 的區別
  64. 有一個高度自適應的div,裡面有兩個div,一個高度100px,希望另一個填滿剩下的高度
  65. png、jpg、gif 這些圖片格式解釋一下,分別什麼時候用。有沒有了解過webp?
  66. style標籤寫在body後與body前有什麼區別?
  67. 使用 base64 編碼的優缺點
  68. 超連結訪問過後hover樣式就不出現的問題時什麼?如何解決?
  69. rgba()和opacity的透明效果有什麼區別?
  70. px和em的區別
  71. 描述一個“reset”的css檔案並如何使用它。知道normalize.css嗎?你瞭解他們的不同之處嗎?

vuereact

  1. vue的生命週期有哪些。
  2. 子元件和父元件如何傳值的。
  3. v-if 和 v-show之間的區別。
  4. 介紹以下watch和computed vue中watch的用法和講解
  5. vue2是如何監聽資料的
  6. 為啥不使用全域性物件來管理資料,要用vuex
  7. 自定義指令哪些引數自定義指令的生命週期
  8. vue2x監聽方面有什麼缺點?所以才有了vue3.0
  9. 使用路由懶載入的時候,如何讓點選載入A頁面的時候,B頁面也能載入?
  10. .react跟vue的區別?
  11. 不用v-model是怎樣實現雙向資料繫結的?比如我用的不是input輸入框,而是下拉選擇,是怎樣實現的?
  12. react diff大致原理
  13. react setState什麼時候同步什麼時候非同步為什麼會這樣
  14. 你們當前react版本多少,此版本做了哪些優化
  15. 跳轉頁面時如何去監聽路由的變化?
  16. hook中setState原理
  17. 什麼是vue生命週期?
  18. 詳細說明生命週期
  19. vue生命週期的作用是什麼?
  20. vue生命週期總共有幾個階段?
  21. 第一次頁面載入會觸發哪幾個鉤子?
  22. DOM 渲染在 哪個週期中就已經完成?
  23. Vue內建指令
  24. vue-cli如何新增自定義指令?
  25. v-if 和 v-show 區別
  26. Vue模板語法-插值
  27. vue幾種常用的指令
  28. 事件修飾符
  29. 鍵值修飾符
  30. 計算屬性computed
  31. 計算屬性與methods的區別
  32. 計算屬性與watch的區別
  33. 什麼是vue的計算屬性?
  34. 插槽slot
  35. Vue的雙向繫結資料的原理
  36. 單向資料流和雙向資料繫結
  37. 單向資料流
  38. 雙向資料繫結
  39. Vue 如何去除url中的 #
  40. 元件通訊
  41. 父元件向子元件通訊
  42. 子元件向父元件通訊
  43. vue-router相關
  44. vue-router是什麼 它有哪些元件?
  45. vue-router 路由實現
  46. $route和$router的區別
  47. 怎麼定義vue-router的動態路由?
  48. 怎麼獲取傳過來的動態引數?
  49. Vue的路由實現:
  50. 前端怎麼控制管理路由
  51. vue-router提供兩種模式的原因?
  52. Hash基本介紹
  53. vue-router原理
  54. active-class是哪個元件的屬性?巢狀路由怎麼定義?
  55. 談談你對MVVM開發模式的理解
  56. 為什麼會出現MVVM
  57. 虛擬dom的原理
  58. 說一下virtual Dom中key的作用
  59. 為什麼要使用虛擬DOM?
  60. Vuex是什麼?怎麼使用?哪種功能場景使用它?
  61. Vue 3.0
  62. Vue 元件 data 為什麼必須是函式
  63. Vue 中怎麼自定義過濾器
  64. Vue 中 key 的作用
  65. 簡述Vue的響應式原理
  66. Vue中如何監控某個屬性值的變化?
  67. Vue元件間的引數傳遞
  68. css只在當前元件起作用
  69. vue.js的兩個核心是什麼?
  70. vue常用的修飾符?
  71. vue等單頁面應用及其優缺點
  72. MVC
  73. vue.nextTick實現原理
  74. Emit事件怎麼發,需要引入什麼
  75. 使用import時,webpack對node_modules裡的依賴會做什麼
  76. vue怎麼監聽陣列
  77. Proxy 相比於 defineProperty 的優勢
  78. RESTful
  79. 架構優點
  80. 什麼是RESTful API?怎麼使用?
  81. RESTful架構設計原則(不同公司具體細節可能不同):
  82. vue 元件的優點,以及註冊使用的過程
  83. Vue.js中ajax請求程式碼應該寫在元件的methods中還是vuex的actions中?

js

  1. this指向問題
  2. promise說一下promise的原生實現 實現promise並指出為何能夠實現.then連續呼叫
  3. 箭頭函式 使用箭頭函式應注意什麼
  4. 解構賦值
  5. Ajax以及axios使用和二次封裝 通過axios 請求攔截器
  6. 閉包
  7. 原型 原型鏈
  8. 作用域
  9. 鉤子函式是什麼
  10. 設計模式 設計模式用過嗎?最熟悉的模式是什麼?
  11. 事件冒泡事件捕獲
  12. 優雅降級和漸進增強
  13. 閉包
  14. 事件委託
  15. js延遲載入
  16. 深拷貝和淺拷貝
  17. 重排和重繪
  18. 跨域
  19. 寫一個氣泡排序
  20. 建構函式,例項,原型之間的關係
  21. cookie sessionStorage localStorage區別及相關安全等
  22. Webpack打包效能優化webpack大致執行流程
  23. 單例模式的實現原理是什麼 手寫一個
  24. 說一下輸入URL到頁面顯示的過程,越詳細越好
  25. 手寫JS的繼承
  26. 說一下巨集任務和微任務有什麼區別 那麼promise和setTimeout會誰先執行
  27. 說一下vue雙向繫結實現的原理
  28. es6瞭解過嗎?模組化是怎麼實現的?怎麼做到變數名之間互不干擾就是模組之間如何保證互不影響,模組化是怎麼做到的?
  29. ES5和ES6的區別?說一下你所知道的ES6
  30. class es6變為es5是怎麼寫的
  31. 防抖怎麼寫
  32. 做過什麼外掛
  33. 大檔案上傳
  34. 斷點續傳怎麼分包
  35. 資料一開始沒定義,後面新增,不會變化,怎麼修改
  36. import和require的區別
  37. 表單提交的時候的報文頭
  38. 圖片線上預覽 new blob
  39. 事件迴圈(出了好幾道)
  40. 深拷貝
  41. 靜態資源快取是怎樣實現的?cdn加速又是怎樣實現的
  42. 使用axios請求時 ,如何中斷請求
  43. 儲存資料在瀏覽器有哪些方法?如何設定一個時間讓儲存在瀏覽器裡面的資料消失?
  44. 瀏覽器的快取策略是怎樣的?如何給強快取設定過期時間?協商快取傳送了什麼請求?
  45. 原型鏈相關
  46. 實現class中的extends
  47. Proxy為什麼不能被babel polyfill
  48. 如何壓縮圖片?
  49. 當git上傳之後,發現程式碼有bug,該如何去做?
  50. object.definedproperty引數有哪些?分別是哪些?
  51. 瞭解過處理相容性的問題嗎?
  52. video如何實現自動播放?
  53. 傳送請求要不要加密?是如何加密的?全部都能請求到後臺資料嗎?
  54. 怎樣實現路由懶載入?不用懶載入有什麼後果?
  55. 為什麼不直接用mutaction去傳送請求,請求之後直接修改資料。而要在action裡面傳送非同步請求?
  56. ES6 怎麼寫class ,為何會出現 class?
  57. 實現compose函式
  58. 擴充套件運算子與rest運算子的區別?
  59. 解決非同步的方式有哪些
  60. event loop簡述原理
  61. ajax原理
  62. ajax到async的發展過程
  63. 什麼是同源策略?
  64. 跨域的方式及原理?
  65. Axios的特點
  66. es5與es6繼承方式?
  67. 處理陣列用過哪些方法?
  68. 陣列物件,變異和非變異方法?
  69. js判斷是不是陣列的方法?
  70. 陣列去重有哪些方法?
  71. 利用set的唯一性來達到去重效果(es6中最常用)
  72. 利用雙重for迴圈,然後splice去重(es5中最常用)
  73. 利用indexOf去重
  74. 利用sort()排序方法來實現
  75. 利用es7中新增的includes方法
  76. 利用hasOwnProperty()方法和filter
  77. 處理字串用過哪些方法?
  78. 處理物件用過哪些方法?
  79. Math物件常用的方法?
  80. js的資料型別有哪些?
  81. substr與substring的區別?
  82. 陣列的map,filter,forEach的區別?
  83. 閉包?
  84. 閉包的適用場景?
  85. 什麼是記憶體洩漏?
  86. 如何解決記憶體洩漏?
  87. 什麼是垃圾回收機制?
  88. 說下原型鏈?
  89. js事件流?
  90. 深拷貝和淺拷貝?
  91. DOM操縱 增刪改查?
  92. 如何做防止重複提交?
  93. 防抖和節流

網路

  1. http常見狀態碼
  2. 跨域
  3. 表單請求的header
  4. http與https區別 https大致實現原理
  5. 服務端渲染與客戶端渲染相比好處,減少多少首屏渲染時間
  6. 怎樣解決跨域跨域時的請求頭option請求什麼時候發
  7. http1.1跟http2.0有什麼區別?

演算法

  1. 排序陣列去重 要求不新建情況下返回去重後的新陣列元素個數
  2. 二叉樹鏡象
  3. 陣列輸出翻轉後的陣列 要求空間複雜度為0(1)
  4. 根據最小位進行排序相同則根據進位排序例in: [1,20,33,31,50] out: [20,50,1,31,33]14.實現相同數字消除例如[1,3,2,2,2,3,5] => [1,3,3,5] => [1,5]
  5. 爬樓梯只能爬1梯或2梯求爬第n梯有幾種跳法
  6. ast語法樹都能幹哪些事
  7. 實現柯里化函式
  8. 瞭解過diff演算法嗎?是如何計算的?

小程式

  1. 小程式中是否能實現後端可配置動態頁面,是否能過微信稽核
  2. 小程式渲染出頁面整個流程
  3. 微信小程式生命週期?
  4. 微信小程式用哪種響應式方案?

優化

  1. 怎樣減少http請求?
  2. 專案部署時候,前端還有什麼優化效能方案

安全

  1. 對web效能安全有什麼瞭解嗎?(主要說了xss和csrf)
  2. xss一般會過濾什麼?(尖括號、斜槓)
  3. 為什麼要過濾尖括號?(可以插入指令碼,如)
  4. 瞭解過哪些web安全及防護原理?

手寫部分:

1. 以下程式碼會不會報錯,如何不報錯輸出什麼,為什麼?(備註,es6介紹下)
var y = 10;
if (!(x in window)) {
var x = 10;
} else {
++y;
}

2. 以下程式碼會不會報錯,如何不報錯輸出什麼,為什麼?(備註,資料型別介紹)
var a = {n: 1};
var b = a;
a = {n: 2}
a.x = a;
console.log(a.x);
console.log(b.x);

3. 以下程式碼輸出什麼。(備註,閉包介紹)
for (var i = 0; i < 5; i++) {
setTimeout(function() {
console.log(i);
}, 1000);
}