最近更新了一下咱們的面試題庫,將三道比較基礎可是有表明性的題目分享出來。html
咱們在設計面試題時通常會從一個實際需求出發,根據面試者思考的深刻程度和擅長的知識領域不斷地提出更進一步的問題。咱們並不要求面試者要回答出每個問題,而是但願在探討的過程瞭解對方的工程習慣、解決問題的思路等特質。vue
十分歡迎你們就面試題進行討論,若是對咱們考察工程師的方式感到承認,而且但願和咱們進行更多深刻的交流,歡迎查看咱們的職位描述:面試
職位描述vue-router
簡歷也能夠直接發到個人郵箱(yanzhen#smartx.com,# 自行替換爲 @)。vuex
實現一個 Tabs 組件
主要針對過去使用 Vue 的開發者。閉包
- 如何設計傳入的 props。
- 怎麼實現 tab content 能夠是任意內容(字符串、組件等),若是使用
v-html
實現須要說清利弊。
- 對基礎較好的看看是否能想到 dynamic component 和 render function 中解析 slot 的思路。
- 拓展到支持外部動態判斷點擊 tab 後是否容許切換,考察 props 設計和對各類業務場景的抽象能力。
- 拓展到 Tab active 狀態和 vue-router 或 vuex 同步,考察對周邊生態的使用狀況。
- 對須要考察 HTML 和 CSS 的狀況,能夠拓展到對應的 DOM 元素的語義化標籤的選擇以及一些樣式的實現方法。
實現一個倒計時組件
適用 Vue、React、Angular 等組件化框架背景的開發者app
- 基本功能實現,考察在生命週期的 hook 中是否正確的建立和回收定時器。
- 要在生命週期中共享定時器的 handler 通常選擇存儲在 this 上,考察是否能意識到 handler 與 render 無關不須要是響應式的,例如 React 中不要存在 state 裏。
- 設計一些 props 控制定時器的初始時間、計時間隔、對外事件等,考察組件設計和抽象能力。
- 拓展到基於 setInternal 的計時器是否準確,若是知道有阻塞的問題,進一步考察是否能想到用 requestAnimationFrame 實現更高精度的定時器。
- 拓展到 event loop 的相關理解。
- 拓展到是否能經過 mixin、HOC、React hooks 等形式實現一個無 DOM 實體的抽象倒計時,與其它組件組合使用。
實現簡單的 Enum
主要針對有 Typescript 使用經驗的開發者框架
- 是否理解 Typescript 中的哪些特性是編譯期實現,哪些是運行時實現。
- 實現一個數字類型的 Enum,也須要實現 reverse mapping。
- 拓展到如何避免該 Enum 在運行時被修改,考察閉包、Object.defineProperty、Proxy 等思路。若是可以想到以上思路,進一步討論爲何 Typescript 只是簡單的使用對象模擬,考察對於通用型技術設計時的思考。
- 描述一下在業務場景中使用 Enum 的場景,側面考察工程經驗。