自我介紹
我是 2020 屆的應屆畢業生,去年 5 月份通過春招内推進入到阿裡實習,期間也參加過騰訊、網易等多家公司的招聘并拿到了其中的部分 offer。在找實習期間,看過很多大佬們的經驗分享和知識總結,是以總想着自己也應該回饋一波,下面是我對于前端面試中的一些常見知識點和面試題的總結(連結點進去是題目的答案),内容可能不全面,希望對大家有所幫助。
HTML 知識點總結
- 1. DOCTYPE 的作用是什麼?
- 2. 标準模式與相容模式各有什麼差別?
- 3. HTML5 為什麼隻需要寫 <!DOCTYPE HTML>,而不需要引入 DTD?
- 4. SGML 、 HTML 、XML 和 XHTML 的差別?
- 5. DTD 介紹
- 6. 行内元素定義
- 7. 塊級元素定義
- 8. 行内元素與塊級元素的差別?
- 9. HTML5 元素的分類
- 10. 空元素定義
- 11. link 标簽定義
- 12. 頁面導入樣式時,使用 link 和 @import 有什麼差別?
- 13. 你對浏覽器的了解?
- 14. 介紹一下你對浏覽器核心的了解?
- 15. 常見的浏覽器核心比較
- 16. 常見浏覽器所用核心
- 17. 浏覽器的渲染原理?
- 18. 渲染過程中遇到 JS 檔案怎麼處理?(浏覽器解析過程)
- 19. async 和 defer 的作用是什麼?有什麼差別?(浏覽器解析過程)
- 20. 什麼是文檔的預解析?(浏覽器解析過程)
- 21. CSS 如何阻塞文檔解析?(浏覽器解析過程)
- 22. 渲染頁面時常見哪些不良現象?(浏覽器渲染過程)
- 23. 如何優化關鍵渲染路徑?(浏覽器渲染過程)
- 24. 什麼是重繪和回流?(浏覽器繪制過程)
- 25. 如何減少回流?(浏覽器繪制過程)
- 26. 為什麼操作 DOM 慢?(浏覽器繪制過程)
- 27. DOMContentLoaded 事件和 Load 事件的差別?
- 28. HTML5 有哪些新特性、移除了那些元素?
- 29. 如何處理 HTML5 新标簽的浏覽器相容問題?
- 30. 簡述一下你對 HTML 語義化的了解?
- 31. b 與 strong 的差別和 i 與 em 的差別?
- 32. 前端需要注意哪些 SEO ?
- 33. HTML5 的離線儲存怎麼使用,工作原理能不能解釋一下?
- 34. 浏覽器是怎麼對 HTML5 的離線儲存資源進行管理和加載的呢?
- 35. 常見的浏覽器端的存儲技術有哪些?
- 36. 請描述一下 cookies,sessionStorage 和 localStorage 的差別?
- 37. iframe 有那些缺點?
- 38. Label 的作用是什麼?是怎麼用的?
- 39. HTML5 的 form 的自動完成功能是什麼?
- 40. 如何實作浏覽器内多個标簽頁之間的通信?
- 41. webSocket 如何相容低版本浏覽器?
- 42. 頁面可見性(Page Visibility API) 可以有哪些用途?
- 43. 如何在頁面上實作一個圓形的可點選區域?
- 44. 實作不使用 border 畫出 1 px 高的線,在不同浏覽器的标準模式與怪異模式下都能保持一緻的效果。
- 45. title 與 h1 的差別?
- 46. <img> 的 title 和 alt 有什麼差別?
- 47. Canvas 和 SVG 有什麼差別?
- 48. 網頁驗證碼是幹嘛的,是為了解決什麼安全問題?
- 49. 漸進增強和優雅降級的定義
- 50. attribute 和 property 的差別是什麼?
- 51. 對 web 标準、可用性、可通路性的了解
- 52. IE 各版本和 Chrome 可以并行下載下傳多少個資源?
- 53. Flash、Ajax 各自的優缺點,在使用中如何取舍?
- 54. 怎麼重構頁面?
- 55. 浏覽器架構
- 56. 常用的 meta 标簽
- 57. css reset 和 normalize.css 有什麼差別?
- 58. 用于預格式化文本的标簽是?
- 59. DHTML 是什麼?
- 60. head 标簽中必不少的是?
- 61. HTML5 新增的表單元素有?
- 62. 在 HTML5 中,哪個方法用于獲得使用者的目前位置?
- 63. 文檔的不同注釋方式?
- 64. disabled 和 readonly 的差別?
- 65. 主流浏覽器核心私有屬性 css 字首?
- 66. 前端性能優化?
- 67. Chrome 中的 Waterfall ?
- 68. 掃描二維碼登入網頁是什麼原理,前後兩個事件是如何聯系的?
CSS 知識點總結
- 1. 介紹一下标準的 CSS 的盒子模型?低版本 IE 的盒子模型有什麼不同的?
- 2. CSS選擇符有哪些?
- 3. ::before 和 :after 中雙冒号和單冒号 有什麼差別?解釋一下這2個僞元素的作用。
- 4. 僞類與僞元素的差別
- 5. CSS 中哪些屬性可以繼承?
- 6. CSS 優先級算法如何計算?
- 7. 關于僞類 LVHA 的解釋?
- 8. CSS3 新增僞類有那些?
- 9. 如何居中 div ?
- 10. display 有哪些值?說明他們的作用。
- 11. position 的值 relative 和 absolute 定位原點是?
- 12. CSS3 有哪些新特性?(根據項目回答)
- 13. 請解釋一下 CSS3 的 Flexbox(彈性盒布局模型),以及适用場景?
- 14. 用純 CSS 建立一個三角形的原理是什麼?
- 15. 一個滿屏品字布局如何設計?
- 16. CSS 多列等高如何實作?
- 17. 經常遇到的浏覽器的相容性有哪些?原因,解決方法是什麼,常用 hack 的技巧 ?
- 18. li 與 li 之間有看不見的空白間隔是什麼原因引起的?有什麼解決辦法?
- 19. 為什麼要初始化 CSS 樣式?
- 20. 什麼是包含塊,對于包含塊的了解?
- 21. CSS 裡的 visibility 屬性有個 collapse 屬性值是幹嘛用的?在不同浏覽器下以後什麼差別?
- 22. width:auto 和 width:100% 的差別
- 23. 絕對定位元素與非絕對定位元素的百分比計算的差別
- 24. 簡單介紹使用圖檔 base64 編碼的優點和缺點。
- 25. 'display'、'position' 和 'float' 的互相關系?
- 26. margin 重疊問題的了解。
- 27. 對 BFC 規範(塊級格式化上下文:block formatting context)的了解?
- 28. IFC 是什麼?
- 29. 請解釋一下為什麼需要清除浮動?清除浮動的方式
- 30. 使用 clear 屬性清除浮動的原理?
- 31. zoom:1 的清除浮動原理?
- 32. 移動端的布局用過媒體查詢嗎?
- 33. 使用 CSS 預處理器嗎?喜歡哪個?
- 34. CSS 優化、提高性能的方法有哪些?
- 35. 浏覽器是怎樣解析 CSS 選擇器的?
- 36. 在網頁中應該使用奇數還是偶數的字型?為什麼呢?
- 37. margin 和 padding 分别适合什麼場景使用?
- 38. 抽離樣式子產品怎麼寫,說出思路,有無實踐經驗?[阿裡航旅的面試題]
- 39. 簡單說一下 css3 的 all 屬性。
- 40. 為什麼不建議使用統配符初始化 css 樣式。
- 41. absolute 的 containing block (包含塊)計算方式跟正常流有什麼不同?
- 42. 對于 hasLayout 的了解?
- 43. 元素豎向的百分比設定是相對于容器的高度嗎?
- 44. 全屏滾動的原理是什麼?用到了 CSS 的哪些屬性?(待深入實踐)
- 45. 什麼是響應式設計?響應式設計的基本原理是什麼?如何相容低版本的 IE?(待深入了解)
- 46. 視差滾動效果,如何給每頁做不同的動畫?(回到頂部,向下滑動要再次出現,和隻出現一次分别怎麼做?)
- 47. 如何修改 chrome 記住密碼後自動填充表單的黃色背景 ?
- 48. 怎麼讓 Chrome 支援小于12px 的文字?
- 49. 讓頁面裡的字型變清晰,變細用 CSS 怎麼做?
- 50. font-style 屬性中 italic 和 oblique 的差別?
- 51. 裝置像素、css 像素、裝置獨立像素、dpr、ppi 之間的差別?
- 52. layout viewport 、visual viewport 和 ideal viewport 的差別?
- 53. position:fixed; 在 android 下無效怎麼處理?
- 54. 如果需要手動寫動畫,你認為最小時間間隔是多久,為什麼?(阿裡)
- 55. 如何讓去除 inline-block 元素間間距?
- 56. overflow: scroll 時不能平滑滾動的問題怎麼處理?
- 57. 有一個高度自适應的 div,裡面有兩個 div,一個高度 100px,希望另一個填滿剩下的高度。
- 58. png、jpg、gif 這些圖檔格式解釋一下,分别什麼時候用。有沒有了解過 webp?
- 59. 浏覽器如何判斷是否支援 webp 格式圖檔
- 60. 什麼是 Cookie 隔離?(或者說:請求資源的時候不要讓它帶 cookie 怎麼做)
- 61. style 标簽寫在 body 後與 body 前有什麼差別?
- 62. 什麼是 CSS 預處理器 / 後處理器?
- 63. 闡述一下 CSS Sprites
- 64. 使用 rem 布局的優缺點?
- 65. 幾種常見的 CSS 布局
- 66. 畫一條 0.5 px 的線
- 67. transition 和 animation 的差別
- 68. 什麼是首選最小寬度?
- 69. 為什麼 height:100% 會無效?
- 70. min-width/max-width 和 min-height/max-height 屬性間的覆寫規則?
- 71. 内聯盒模型基本概念
- 72. 什麼是幽靈空白節點?
- 73. 什麼是替換元素?
- 74. 替換元素的計算規則?
- 75. content 與替換元素的關系?
- 76. margin:auto 的填充規則?
- 77. margin 無效的情形
- 78. border 的特殊性?
- 79. 什麼是基線和 x-height?
- 80. line-height 的特殊性?
- 81. vertical-align 的特殊性?
- 82. overflow 的特殊性?
- 83. 無依賴絕對定位是什麼?
- 84. absolute 與 overflow 的關系?
- 85. clip 裁剪是什麼?
- 86. relative 的特殊性?
- 87. 什麼是層疊上下文?
- 88. 什麼是層疊水準?
- 89. 元素的層疊順序?
- 90. 層疊準則?
- 91. font-weight 的特殊性?
- 92. text-indent 的特殊性?
- 93. letter-spacing 與字元間距?
- 94. word-spacing 與單詞間距?
- 95. white-space 與換行和空格的控制?
- 96. 隐藏元素的 background-image 到底加不加載?
- 97. 如何實作單行/多行文本溢出的省略(...)?
- 98. 常見的元素隐藏方式?
- 99. css 實作上下固定中間自适應布局?
- 100. css 兩欄布局的實作?
- 101. css 三欄布局的實作?
- 102. 實作一個寬高自适應的正方形
- 103. 實作一個三角形
- 104. 一個自适應矩形,水準垂直居中,且寬高比為 2:1
JavaScript 知識點總結
- 1. 介紹 js 的基本資料類型。
- 2. JavaScript 有幾種類型的值?你能畫一下他們的記憶體圖嗎?
- 3. 什麼是堆?什麼是棧?它們之間有什麼差別和聯系?
- 4. 内部屬性 [[Class]] 是什麼?
- 5. 介紹 js 有哪些内置對象?
- 6. undefined 與 undeclared 的差別?
- 7. null 和 undefined 的差別?
- 8. 如何擷取安全的 undefined 值?
- 9. 說幾條寫 JavaScript 的基本規範?
- 10. JavaScript 原型,原型鍊? 有什麼特點?
- 11. js 擷取原型的方法?
- 12. 在 js 中不同進制數字的表示方式
- 13. js 中整數的安全範圍是多少?
- 14. typeof NaN 的結果是什麼?
- 15. isNaN 和 Number.isNaN 函數的差別?
- 16. Array 構造函數隻有一個參數值時的表現?
- 17. 其他值到字元串的轉換規則?
- 18. 其他值到數字值的轉換規則?
- 19. 其他值到布爾類型的值的轉換規則?
- 20. {} 和 [] 的 valueOf 和 toString 的結果是什麼?
- 21. 什麼是假值對象?
- 22. ~ 操作符的作用?
- 23. 解析字元串中的數字和将字元串強制類型轉換為數字的傳回結果都是數字,它們之間的差別是什麼?
- 24. 操作符什麼時候用于字元串的拼接?
- 25. 什麼情況下會發生布爾值的隐式強制類型轉換?
- 26. || 和 && 操作符的傳回值?
- 27. Symbol 值的強制類型轉換?
- 28. == 操作符的強制類型轉換規則?
- 29. 如何将字元串轉化為數字,例如 '12.3b'?
- 30. 如何将浮點數點左邊的數每三位添加一個逗号,如12000000.11轉化為『12,000,000.11』?
- 31. 常用正規表達式
- 32. 生成随機數的各種方法?
- 33. 如何實作數組的随機排序?
- 34. javascript 建立對象的幾種方式?
- 35. JavaScript 繼承的幾種實作方式?
- 36. 寄生式組合繼承的實作?
- 37. Javascript 的作用域鍊?
- 38. 談談 This 對象的了解。
- 39. eval 是做什麼的?
- 40. 什麼是 DOM 和 BOM?
- 41. 寫一個通用的事件偵聽器函數。
- 42. 事件是什麼?IE 與火狐的事件機制有什麼差別? 如何阻止冒泡?
- 43. 三種事件模型是什麼?
- 44. 事件委托是什麼?
- 45. ["1", "2", "3"].map(parseInt) 答案是多少?
- 46. 什麼是閉包,為什麼要用它?
- 47. javascript 代碼中的 "use strict"; 是什麼意思 ? 使用它差別是什麼?
- 48. 如何判斷一個對象是否屬于某個類?
- 49. instanceof 的作用?
- 50. new 操作符具體幹了什麼呢?如何實作?
- 51. Javascript中,有一個函數,執行時對象查找時,永遠不會去查找原型,這個函數是?
- 52. 對于 JSON 的了解?
- 53. [].forEach.call($$(""),function(a){a.style.outline="1px solid #" (~~(Math.random()(1<<24))).toString(16)}) 能解釋一下這段代碼的意思嗎?
- 54. js 延遲加載的方式有哪些?
- 55. Ajax 是什麼? 如何建立一個Ajax?
- 56. 談一談浏覽器的緩存機制?
- 57. Ajax 解決浏覽器緩存問題?
- 58. 同步和異步的差別?
- 59. 什麼是浏覽器的同源政策?
- 60. 如何解決跨域問題?
- 61. 伺服器代理轉發時,該如何處理 cookie?
- 62. 簡單談一下 cookie ?
- 63. 子產品化開發怎麼做?
- 64. js 的幾種子產品規範?
- 65. AMD 和 CMD 規範的差別?
- 66. ES6 子產品與 CommonJS 子產品、AMD、CMD 的差異。
- 67. requireJS 的核心原理是什麼?(如何動态加載的?如何避免多次加載的?如何 緩存的?)
- 68. JS 子產品加載器的***怎麼造,也就是如何實作一個子產品加載器?
- 69. ECMAScript6 怎麼寫 class,為什麼會出現 class 這種東西?
- 70. documen.write 和 innerHTML 的差別?
- 71. DOM 操作——怎樣添加、移除、移動、複制、建立和查找節點?
- 72. innerHTML 與 outerHTML 的差別?
- 73. .call() 和 .apply() 的差別?
- 74. JavaScript 類數組對象的定義?
- 75. 數組和對象有哪些原生方法,列舉一下?
- 76. 數組的 fill 方法?
- 77. [,,,] 的長度?
- 78. JavaScript 中的作用域與變量聲明提升?
- 79. 如何編寫高性能的 Javascript ?
- 80. 簡單介紹一下 V8 引擎的垃圾回收機制
- 81. 哪些操作會造成記憶體洩漏?
- 82. 需求:實作一個頁面操作不會整頁重新整理的網站,并且能在浏覽器前進、後退時正确響應。給出你的技術實作方案?
- 83. 如何判斷目前腳本運作在浏覽器還是 node 環境中?(阿裡)
- 84. 把 script 标簽放在頁面的最底部的 body 封閉之前和封閉之後有什麼差別?浏覽器會如何解析它們?
- 85. 移動端的點選事件的有延遲,時間是多久,為什麼會有? 怎麼解決這個延時?
- 86. 什麼是“前端路由”?什麼時候适合使用“前端路由”?“前端路由”有哪些優點和缺點?
- 87. 如何測試前端代碼麼? 知道 BDD, TDD, Unit Test 麼? 知道怎麼測試你的前端工程麼(mocha, sinon, jasmin, qUnit..)?
- 88. 檢測浏覽器版本版本有哪些方式?
- 89. 什麼是 Polyfill ?
- 90. 使用 JS 實作擷取檔案擴充名?
- 91. 介紹一下 js 的節流與防抖?
- 92. Object.is() 與原來的比較操作符 “==”、“===” 的差別?
- 93. escape,encodeURI,encodeURIComponent 有什麼差別?
- 94. Unicode 和 UTF-8 之間的關系?
- 95. js 的事件循環是什麼?
- 96. js 中的深淺拷貝實作?
- 97. 手寫 call、apply 及 bind 函數
- 98. 函數柯裡化的實作
- 99. 為什麼 0.1 0.2 != 0.3?如何解決這個問題?
- 100. 原碼、反碼和補碼的介紹
- 101. toPrecision 和 toFixed 和 Math.round 的差別?
- 102. 什麼是 XSS 攻擊?如何防範 XSS 攻擊?
- 103. 什麼是 CSP?
- 104. 什麼是 CSRF 攻擊?如何防範 CSRF 攻擊?
- 105. 什麼是 Samesite Cookie 屬性?
- 106. 什麼是點選劫持?如何防範點選劫持?
- 107. SQL 注入攻擊?
- 108. 什麼是 MVVM?比之 MVC 有什麼差別?什麼又是 MVP ?
- 109. vue 雙向資料綁定原理?
- 110. Object.defineProperty 介紹?
- 111. 使用 Object.defineProperty() 來進行資料劫持有什麼缺點?
- 112. 什麼是 Virtual DOM?為什麼 Virtual DOM 比原生 DOM 快?
- 113. 如何比較兩個 DOM 樹的差異?
- 114. 什麼是 requestAnimationFrame ?
- 115. 談談你對 webpack 的看法
- 116. offsetWidth/offsetHeight,clientWidth/clientHeight 與 scrollWidth/scrollHeight 的差別?
- 117. 談一談你了解的函數式程式設計?
- 118. 異步程式設計的實作方式?
- 119. Js 動畫與 CSS 動畫差別及相應實作
- 120. get 請求傳參長度的誤區
- 121. URL 和 URI 的差別?
- 122. get 和 post 請求在緩存方面的差別
- 123. 圖檔的懶加載和預加載
- 124. mouseover 和 mouseenter 的差別?
- 125. js 拖拽功能的實作
- 126. 為什麼使用 setTimeout 實作 setInterval?怎麼模拟?
- 127. let 和 const 的注意點?
- 128. 什麼是 rest 參數?
- 129. 什麼是尾調用,使用尾調用有什麼好處?
- 130. Symbol 類型的注意點?
- 131. Set 和 WeakSet 結構?
- 132. Map 和 WeakMap 結構?
- 133. 什麼是 Proxy ?
- 134. Reflect 對象建立目的?
- 135. require 子產品引入的查找方式?
- 136. 什麼是 Promise 對象,什麼是 Promises/A 規範?
- 137. 手寫一個 Promise
- 138. 如何檢測浏覽器所支援的最小字型大小?
- 139. 怎麼做 JS 代碼 Error 統計?
- 140. 單例模式模式是什麼?
- 141. 政策模式是什麼?
- 142. 代理模式是什麼?
- 143. 中介者模式是什麼?
- 144. 擴充卡模式是什麼?
- 145. 觀察者模式和釋出訂閱模式有什麼不同?
- 146. Vue 的生命周期是什麼?
- 147. Vue 的各個生命階段是什麼?
- 148. Vue 元件間的參數傳遞方式?
- 149. computed 和 watch 的差異?
- 150. vue-router 中的導航鈎子函數
- 151. $route 和 $router 的差別?
- 152. vue 常用的修飾符?
- 153. vue中 key 值的作用?
- 154. computed 和 watch 差別?
- 155. keep-alive 元件有什麼作用?
- 156. vue 中 mixin 和 mixins 差別?
- 157. 開發中常用的幾種 Content-Type ?
- 158. 如何封裝一個 javascript 的類型判斷函數?
- 159. 如何判斷一個對象是否為空對象?
- 160. 使用閉包實作每隔一秒列印 1,2,3,4
- 161. 手寫一個 jsonp
- 162. 手寫一個觀察者模式?
- 163. EventEmitter 實作
- 164. 一道常被人輕視的前端JS面試題
- 165. 如何确定頁面的可用性時間,什麼是 Performance API?
- 166. js 中的命名規則
- 167. js 語句末尾分号是否可以省略?
- 168. Object.assign()
- 169. Math.ceil 和 Math.floor
- 170. js for 循環注意點
- 171. 一個清單,假設有100000個資料,這個該怎麼辦?
- 172. js 中倒計時的糾偏實作?
- 173. 程序間通信的方式?
- 174. 如何查找一篇英文文章中出現頻率最高的單詞?
前端常考算法知識點總結
- 常用算法和資料結構總結
-
- 排序
-
-
- 冒泡排序
- 選擇排序
- 插入排序
- 希爾排序
- 歸并排序
- 快速排序
- 堆排序
- 基數排序
- 快速排序相對于其他排序效率更高的原因
- 系統自帶排序實作
- 穩定性
- 排序面試題目總結
-
-
- 樹
-
-
- 二叉樹相關性質
- 滿二叉樹
- 完全二叉樹
- 平衡二叉查找樹(AVL)
- B-樹
- B 樹
- 資料庫索引
- 紅黑樹
- Huffman 樹
- 二叉查找樹
- 求解二叉樹中兩個節點的最近公共祖先節點
-
-
- 連結清單
-
-
- 反轉單向連結清單
-
-
- 動态規劃
-
-
- 爬樓梯問題
- 遞歸方法分析
- 備忘錄方法
- 疊代法
-
-
- 經典筆試題
-
-
- 1. js 實作一個函數,完成超過範圍的兩個大整數相加功能
- 2. js 如何實作數組扁平化?
- 3. js 如何實作數組去重?
- 4. 如何求數組的最大值和最小值?
- 5. 如何求兩個數的最大公約數?
- 6. 如何求兩個數的最小公倍數?
- 7. 實作 IndexOf 方法?
- 8. 判斷一個字元串是否為回文字元串?
- 9. 實作一個累加函數的功能比如 sum(1,2,3)(2).valueOf()
- 10. 使用 reduce 方法實作 forEach、map、filter
- 11. 設計一個簡單的任務隊列,要求分别在 1,3,4 秒後列印出 "1", "2", "3"
- 12. 如何查找一篇英文文章中出現頻率最高的單詞?
-
- 常見面試智力題總結
-
- 1. 時針與分針夾角度數問題?
- 2. 用3升,5升杯子怎麼量出4升水?
- 3. 渾濁藥罐問題
- 4. 卡片證明問題
- 5. 賽馬問題,25 匹馬,5 個賽道,最少幾次能選出最快的三匹馬?
- 6. 五隊夫婦參加聚會握手問題
- 7. 你隻能帶行走 60 公裡的油,隻能在起始點加油,如何穿過 80 公裡的沙漠?
- 8. 燒一根不均勻的繩要用一個小時,如何用它來判斷一個小時十五分鐘?
- 9. 有7克、2克砝碼各一個,天平一隻,如何隻用這些物品三次将140克的鹽分成50、90克各一份?
- 10. 火車相對而行,小鳥飛行距離問題
- 11. 彈球拾取幾率問題
- 12. 8個球使用天平稱重問題
- 13. 三盞燈區分開關問題
- 14. 盲人黑白襪子問題
- 15. 水果标簽問題
- 16. 一個班級60%喜歡足球,70%喜歡籃球,80%喜歡排球,問即三種球都喜歡占比有多少?
- 17. 五隻雞五天能下五個蛋,一百天下一百個蛋需要多少隻雞?
- 劍指 offer 思路總結
-
- 題目
-
-
- 1. 二維數組中的查找
- 2. 替換空格
- 3. 從尾到頭列印連結清單
- 4. 重建二叉樹
- 5. 用兩個棧實作隊列
- 6. 旋轉數組的最小數字
- 7. 斐波那契數列
- 8. 跳台階
- 9. 變态跳台階
- 10. 矩形覆寫
- 11. 二進制中1的個數
- 12. 數值的整數次方
- 13. 調整數組順序使奇數位于偶數前面
- 14. 連結清單中倒數第 k 個節點
- 15. 反轉連結清單
- 16. 合并兩個排序的連結清單
- 17. 樹的子結構
- 18. 二叉樹的鏡像
- 19. 順時針列印矩陣
- 20. 定義一個棧,實作 min 函數
- 21. 棧的壓入彈出
- 22. 從上往下列印二叉樹
- 23. 二叉搜尋樹的後序周遊
- 24. 二叉樹中和為某一值路徑
- 25. 複雜連結清單的複制
- 26. 二叉搜尋樹與雙向連結清單
- 27. 字元串的排列
- 28. 數組中出現次數超過一半的數字
- 29. 最小的 K 個數
- 30. 連續子數組的最大和
- 31. 整數中1出現的次數(待深入了解)
- 32. 把數組排成最小的數
- 33. 醜數(待深入了解)
- 34. 第一個隻出現一次的字元
- 35. 數組中的逆序對
- 36. 兩個連結清單的第一個公共結點
- 37. 數字在排序數組中出現的次數
- 38. 二叉樹的深度
- 39. 平衡二叉樹
- 40. 數組中隻出現一次的數字
- 41. 和為 S 的連續正數序列
- 42. 和為 S 的兩個數字
- 43. 左旋轉字元串
- 44. 翻轉單詞順序列
- 45. 撲克牌的順子
- 46. 圓圈中最後剩下的數字(約瑟夫環問題)
- 47. 1 2 3 ... n
- 48. 不用加減乘除做加法
- 49. 把字元串轉換成整數。
- 50. 數組中重複的數字
- 51. 建構乘積數組
- 52. 正規表達式的比對
- 53. 表示數值的字元串
- 54. 字元流中第一個不重複的字元
- 55. 連結清單中環的入口結點
- 56. 删除連結清單中重複的結點
- 57. 二叉樹的下一個結點
- 58. 對稱二叉樹
- 59. 按之字形順序列印二叉樹(待深入了解)
- 60. 從上到下按層列印二叉樹,同一層結點從左至右輸出。每一層輸出一行。
- 61. 序列化二叉樹(待深入了解)
- 62. 二叉搜尋樹的第 K 個節點
- 63. 資料流中的中位數(待深入了解)
- 64. 滑動視窗中的最大值(待深入了解)
- 65. 矩陣中的路徑(待深入了解)
- 66. 機器人的運動範圍(待深入了解)
-
-
- 相關算法題
-
-
- 1. 明星問題
- 2. 正負數組求和
-
計算機網絡知識點總結
- 應用層
-
- HTTP 協定
-
-
- 概況
- HTTP 請求封包
- HTTP 響應封包
- 首部行
- HTTP/1.1 協定缺點
-
-
- HTTP/2 協定
-
-
- 二進制協定
- 多路複用
- 資料流
- 頭資訊壓縮
- 伺服器推送
- HTTP/2 協定缺點
- HTTP/3 協定
-
-
- HTTPS 協定
-
-
- HTTP 存在的問題
- HTTPS 簡介
- TLS 握手過程
- 實作原理
-
-
- DNS 協定
-
-
- 概況
- 域名的層級結構
- 查詢過程
- DNS 記錄和封包
- 遞歸查詢和疊代查詢
- DNS 緩存
- DNS 實作負載平衡
-
- 傳輸層
-
- 多路複用與多路分解
- UDP 協定
-
-
- UDP 封包段結構
-
-
- TCP 協定
-
-
- TCP 封包段結構
- TCP 三次握手的過程
- TCP 四次揮手的過程
- 狀态轉化圖
- ARQ 協定
- TCP 的可靠運輸機制
- TCP 的流量控制機制
- TCP 的擁塞控制機制
-
-
- 網絡層
- 資料鍊路層
- 實體層
- 常考面試題
-
- 1. Post 和 Get 的差別?
- 2. TLS/SSL 中什麼一定要用三個随機數,來生成"會話密鑰"?
- 3. SSL 連接配接斷開後如何恢複?
- 4. RSA 算法的安全性保障?
- 5. DNS 為什麼使用 UDP 協定作為傳輸層協定?
- 6. 當你在浏覽器中輸入 Google.com 并且按下回車之後發生了什麼?
- 7. 談談 CDN 服務?
- 8. 什麼是正向代理和反向代理?
- 9. 負載平衡的兩種實作方式?
- 10. http 請求方法 options 方法有什麼用?
- 11. http1.1 和 http1.0 之間有哪些差別?
- 12. 網站域名加 www 與不加 www 的差別?
- 13. 即時通訊的實作,短輪詢、長輪詢、SSE 和 WebSocket 間的差別?
- 14. 怎麼實作多個網站之間共享登入狀态
常用工具面試知識點總結
- GIT
-
- 1. git 與 svn 的差別在哪裡?
- 2. 經常使用的 git 指令?
- 3. git pull 和 git fetch 的差別
- 4. git rebase 和 git merge 的差別
面試記錄總結
- 阿裡巴巴(獲得 OFFER)
-
- 1. 2019-3-25 阿裡巴巴(淘寶)一面
- 2. 2019-3-28 阿裡巴巴(淘寶)二面
- 3. 2019-4-1 阿裡巴巴(淘寶)三面
- 4. 2019-4-3 阿裡巴巴(淘寶)四面(hr)
- 5. 2019-4-29 阿裡巴巴(阿裡雲)一面
- 6. 2019-5-27 阿裡巴巴(阿裡雲)二面
- 7. 2019-5-29 阿裡巴巴(淘寶二輪)一面
- 8. 2019-5-31 阿裡巴巴(淘寶二輪)二面
- 9. 2019-5-31 阿裡巴巴(淘寶二輪)三面(hr)
- 騰訊(獲得 OFFER)
-
- 1. 2019-4-26 騰訊(TEG)一面
- 2. 2019-4-29 騰訊(TEG)二面
- 3. 2019-5-9 騰訊(TEG)三面
- 4. 2019-5-17 騰訊(TEG)四面(hr)
- 網易互娛(獲得 OFFER)
-
- 1. 2019-4-15 網易互娛一面
- 2. 2019-4-18 網易互娛二面
- 位元組跳動
-
- 1. 2019-3-23 位元組跳動一面
- 微衆銀行
-
- 1. 2019-4-1 微衆銀行一面
- 酷家樂(獲得 OFFER)
-
- 1. 2019-4-18 酷家樂一面
- 2. 2019-4-22 酷家樂二面
- 3. 2019-4-25 酷家樂三面
- 京東
-
- 1. 2019-4-22 京東一面
- 億聯網絡
-
- 1. 2019-4-24 億聯網絡一面
- OPPO(獲得 OFFER)
-
- 1. 2019-4-26 OPPO一面
- 2. 2019-5-8 OPPO二面(hr)
- 華為(獲得 OFFER)
-
- 1. 2019-4-28 華為一面
- 2. 2019-4-28 華為二面