筆者是在今年春招面試的頭條教育線,順利拿到了offer,把還記得的東西寫下來,供你們參考一下。css
一面
- tcp 和 udp 的區別和使用場景?
- quic 基於 udp 怎麼保證可靠性?
- 講一下同源策略和跨域方案?CORS 的幾個頭部是什麼?
- 講一下 react fiber?
- vue 雙向綁定原理?
- redux 和 mobx 的區別和使用場景?
- typeof null?null instanceof Object?
- typeof 能夠判斷哪些類型?instanceof 作了什麼?
- 實現一個 bind 函數
- 求數組裏面最大連續項的和
- event loop
二面
- 怎麼優化 h5 的加載速度?
- 離線包怎麼更新?怎麼知道須要打開哪一個離線包?
- js bridge 通訊原理?
- 怎麼實現 h5 頁面秒開?
- 明明不是同一個語言,爲何 js 和 native 能夠通訊?
- 怎麼實現 js bridge 跨多個 app 共用?
- grpc 相比 http 的優點?
- rpc 的調用流程?前端怎麼調用 grpc 的?
- 爲何要用 grpc?
- 服務發現爲何用 ip,而不用域名?
- 怎麼作 DNS 預解析?
- 怎麼實現移動端的佈局?
- iOS 下軟鍵盤輸入框遮擋遇到過問題麼?怎麼解決頂不起來的問題?
- 實現兩個大數相加
- 求一個數組最大子項的和,要求這些子項在數組中的位置不是連續的
- 經常使用的 react hooks 方法
- useState 怎麼作緩存的?
- react fiber 是什麼?
- 怎麼解決 useState 閉包的問題?
- useReducer 比 redux 好在哪裏?
三面
- 作過哪些公共組件?DatePicker 怎麼實現的?難點在哪裏?
- 組件封裝有哪些原則?
- 組件數據和 UI 怎麼分離?
- 有沒有作過一些提升工做效率的東西?
- 有沒有了解過拖拽?以爲它有哪些難點?
- 有沒有作過優化相關的?webpack 作了哪些優化?
- cache-loader 和 hard-source-webpack-plugin 的區別是什麼?
- 最近遇到的比較難的項目是什麼?大家服務是怎麼部署的?
- Puppeteer 能夠用來作什麼?
刷過的題目
下面是我花了將近一個月的時間整理的一份面試題庫。這些面試題,包括我本人本身去面試遇到的,還有在面試以前刷過的題目,我都統一的整理了一下,但願對你們有用。前端
HTML&CSS
- 你是怎麼理解HTML語義化
- 你用過哪些HTML5標籤
- metaviewport是作什麼用的,怎麼寫?
- label標籤的做用
- 行內元素有哪些?塊級元素有哪些?空(void)元素有那些?
- a標籤中如何禁用href跳轉頁面或定位連接
- canvas在標籤上設置寬高和在style中設置寬高有什麼區別
- 介紹一下CSS的盒子模型
- CSS選擇符有哪些?
- CSS3新增僞類有哪些
- 什麼是cssHACK?
- Less/Sass/Scss的區別
- 請解釋一下CSS3的flexbox(彈性盒佈局模型),以及適用場景?
- ......
JavaScript
- 請解釋什麼是事件委託/事件代理
- Javascript如何實現繼承?
- 函數執行改變this
- babel編譯原理
- 函數柯里化
- 說一下類的建立和繼承
- 說說前端中的事件流
- 如何讓事件先冒泡後捕獲
- 說一下圖片的懶加載和預加載
- js的new操做符作了哪些事情
- 改變函數內部this指針的指向函數(bind,apply,call的區別)
- Ajax解決瀏覽器緩存問題
- ......
VUE
- vue.js的兩個核心是什麼?
- vue的雙向綁定的原理是什麼?
- vue生命週期鉤子函數有哪些?
- 請問v-if和v-show有什麼區別?
- vue經常使用的修飾符
- 什麼是vue生命週期
- 數據響應(數據劫持)
- virtualdom原理實現
- Proxy相比於defineProperty的優點
- vue中key值的做用
- ......
數據結構與算法
- 哈希
- ⼆叉樹
- 鏈表
- 數組
- 排序
- 堆與棧
- ⾼級算法
- 動態規劃