一面電話面,二面現場面試的。整個過程都是按部就班的,沒有一開始就很難的問題(除了直接問源碼/原理這種)css
據瞭解阿里健康90%的項目前端技術棧是react,可是個人簡歷是vue技術棧和小程序比較多,因此不多涉及到react相關的部分。如下是一些面試題html
Vue
- Vue裏template到render通過哪些步驟
- Object.defineProperty有哪些缺陷,Vue3爲何要用proxy重構
- 修改data裏綁定的一個變量的值,頁面有沒有當即更新,爲何要這樣作
- vuex的實現原理
- vue-router的實現原理
詳細描述從瀏覽器輸入一個URL地址到頁面渲染的整個過程
- http req有哪些參數,分別作什麼用的,服務端接收到這些參數會如何作處理
- res header頭有哪些(說出具體做用)
- 怎麼作緩存,解釋下http緩存機制,什麼是強緩存/協商緩存,他們優先級是怎樣的
- 什麼狀況下瀏覽器回返回204/304/301/500等狀態碼
- http2有哪些新特性
- http2多路複用和http1 keep-alive的區別
- 簡單問了下spdy和http2的區別
- js加載若是不阻塞dom
- html css js這些是怎樣被解析的
- 一些加載的細節
PWA
- PWA有哪些優點,你最喜歡其中哪些功能
- Service Worker特徵
- Service Worker怎麼作優化
- Service Worker是怎麼更新的
css
- css實現一個左邊定寬,右邊自適應的佈局,說出你知道的全部的方式
- 垂直居中的幾種方式,分別用在什麼場景
- 哪些屬性能夠開啓GPU加速
css問題很少,大概過了一下就前端
談項目
- jq重構爲何選擇vue技術棧,技術選型是怎麼考慮的
回答是從漸進式、侵入性低、方便作相似微前端方面考慮的vue
- 怎麼理解微前端,有哪些使用場景,解決了什麼問題
- webpack怎麼優化打包速度,如何優化項目
- 談到了團隊會作codereview,而後問 codereview你會注重哪些地方
- 在聊codereview的時候引入了一個反作用的概念,而後開始聊函數式
函數式
- 函數式優缺點
- 什麼是純函數/反作用
- 柯里化的做用
- 柯里化和閉包的關係
- memoize(or memorize?)有哪些業務場景能夠用到
- 怎麼理解組合 compose
- 實現一個compose(圖方便,用reduce寫的的,跟redux的compose實現相似)
- compose內部出錯返回error了怎麼處理
- 什麼是函子
- 前端跟服務端交互,ajax必定是有反作用的,怎麼處理
- 解釋下什麼是monad
- 後邊不會了就沒有再繼續問(我函數式瞭解很少)
小程序
- 小程序用taro相比原生有哪些好處
- 爲何要用taro
- 提到了async -> 小程序原生裏怎麼使用async
- generator+co的形式是怎麼實現async的
- generator和promise的區別和聯繫
- generator怎麼實現異步操做(不是很明白,我理解generator跟異步不要緊)
- 小程序爲何是雙線程架構,他是怎樣考慮的
- 小程序渲染層是webview,那麼原生組件是怎麼渲染到頁面上來的
- 爲何要設計原生組件,相比純JavaScript有哪些好處
- 小程序和客戶端的通訊原理(JSBridge方案)
跟業務/簡歷無關的面試題
- 設計一個掃碼登陸的流程(前端),包括跟後端是怎樣交互的,接口的設計。能夠用UML或者其餘本身擅長的任意方式描述
- 不用eval函數對一個四則運算求值。例如:"2+3*4/6-1"
剩下的大部分時間都在聊業務相關和我的發展,跳槽指望之類的了react
完
PS: 對貓/前端感興趣的歡迎加入CatScript 交流羣:761155721。 是個新創建的程序員擼貓羣,咱們能夠聊聊技術和麪試webpack