作者兩年經驗, 第一家任職的是個小公司, 第二家算是二線網際網路公司, 各待了一年吧...能有機會去阿里面試很驚喜!
先來和大家分享一下面試經歷...
因為還在職的緣故,**面試從晚上8點鐘開始, 持續了半個小時左右,簡單自我介紹, 做過哪些專案, 使用哪些技術棧 ?一開始的時候特比緊張,甚至聲音略有些顫抖 = =!
這個就沒什麼好說的,因人而異,不要吹自己並不熟悉的技術,免得被深入問的時候答不上來
如何看待前端框架選型 ?
我比較熟悉vue和react 就主要提到了這兩款框架各自的優點和缺點以及效能對比, 以及上手難度, 社群生態, 團隊成員組成, 招聘難度啊 blabla...
vue的如何實現雙向繫結的 ?
object.defineproperty() 這個方法來追蹤依賴並來完成ui的更新
react virsualdom 是什麼? 如何實現? 說一下diff演算法 ?
vm網上資料很多, 實現其實也只是解析jsx -> ast語法樹, diff演算法主要是說了react如何將o(n3)的演算法降低到o(n)級別的
工作中最出色的點, 和你最頭疼的問題 如何解決的 ?
還好提前準備到了, 現場想肯定就黃了... (捂臉)
平時如何學習, 最近接觸了解了哪些新的知識 ?
什麼github 各種論壇 書籍... 想到的都說了就成
結束之後,面試官不告訴我結果說讓我等通知, 然後掛了**一分鐘後, **就來了...
約我第二天去辦公地點面試 ! (效率還挺高)...
一面的面試官很和藹,彬彬有禮, 讓我頓時放鬆了許多簡單自我介紹, 介紹一下你的專案, 技術棧 ?
react和vue的比較 ?
react diff 演算法 ?
和**面試前三題基本一樣, 從你的回答中面試官來找問題, 可能我回答相似度高吧, 問題都相似
觀察者模式實現 ?
設計模式其實看的不多, 只是說了一下大體的思路
http報文頭部有哪些字段? 有什麼意義 ?
這個就很多了, cookie cache-control user-agent expires host refer 等等 挑你會的常用的說, 面試官也不會要求你都說全的
移動端高畫質方案如何解決 ?
這裡被卡住了, 沒有理解到是rem布局+幾倍圖+1px問題, 只提到了flexible.js,並且說了一下原理,現在回頭看,說的還是有問題... 還是有點久了,忘記了
webpack的原理, loader 和 plugin 是幹什麼的? 有自己手寫過麼 ?
大致說了一下,webpack解析模組, loader和plugin的作用, 沒有手寫過, 看過一部分**...
簡述從網頁輸入url到網頁展示的過程發生了哪些事情 ?
說的還是比較粗, 不過重點dns解析,三次握手,資料請求,瀏覽器如何解析dom樹,css樹應該都提到了, 還提到了瀏覽器的多程序多執行緒架構,js執行緒和渲染執行緒互斥
細節問題: 我的專案中是一套**實現了pc h5相容 ,元件耦合嚴重, 問有沒有什麼好的解決方案 ?
只想到了把資料層抽象出來,但是其他的不知道該如何解決... 現在也不知道- . -
ssr 和 客戶端渲染有什麼區別 , vue是如何實現繫結事件的 ?
簡述服務端渲染大概經歷了哪些過程, 最後生成html檔案,並且有flag讓框架知道這是已經由服務端渲染完畢, store中的資料一般會掛在在window.__inialstate__下... vue繫結事件的實現, 不太明白考官的意思, 簡述了vue通過宣告的方式來書寫事件繫結**, 實現訂閱發布的模式, 對dom原生事件做了一層封裝 云云... 也不知道說的對不對
簡述公司node架構中容災的實現 ?
因為我提到了這個, 答的很模糊, 估計有不少漏洞... 實際上應該是cdn slb node三層容災
瀏覽器事件有哪些過程? 為什麼一般在冒泡階段, 而不是在捕獲階段註冊監聽? addeventlistener 引數分別是什麼 ?
第乙個很簡單, 捕獲,元素,冒泡 第二個當時沒回答出來, 後來查到可能是ie8以下沒有捕獲階段, 還有可能是冒泡比較符合一般控制事件影響的一般習慣
物件導向如何實現? 需要復用的變數 怎麼處理 ?
es5的建構函式+prototype es6的class 復用的變數放在建構函式的原型上
移動端300ms延時的原因? 如何處理?
移動端雙擊的設定,導致會有300ms系統判斷的延時. fastclick, 或者touchend來代替
主流框架的資料單向/雙向繫結實現原理 ?
vue defineproperty(), react setstate() domdiff, 訂閱發布模式 展開來說一下就可以了
簡述轉行經歷, 如何學習 ?
作者入坑之前,還做過兩年建築設計... 所以大概訴說了下辛酸史 (捂臉)
你覺得自己在前端工作的最大的優點是什麼 拿實際工作的內容舉例?
這裡實際上很丟臉, 吹了一波, 結果被問細節的時候, 愣是想不起來實際工作例子... 結果面試官看我很尷尬 就換了個話題= . =
最後聊了一會兒,問了一下團隊情況,換個人繼續二面
和一面前3問基本一致,簡述專案,react vue區別 virsualdom實現
diff演算法為什麼是o(n)複雜度而不是o(n^3)
http code碼? 200 302 304等等
移動端rem布局如何實現? 簡述原理?
這個網上有很多,簡單說就是rem可以通過控制html的字型大小來統一作為標桿,其他的rem寬度可以跟隨調整, 只需要將html根字型和移動端寬度大小做關聯計算就可以
jsbridge原理, js和native是如何通訊的?
問的比較深,我也是一知半解... 就說了一些schema和native方法注入webview來執行**,ios使用iframe來通訊
rollup和webpack區別, treeshaking是什麼? 為什麼可以實現
tcp三次握手的過程, get post請求的區別 ?
靜態檔案的瀏覽器快取如何實現?
其實還是考察http相關的快取只是,答出來cache-control expires etag 304 瀏覽器如何識別相同檔案等等就可以了
前端跨域方案
jsonp cors document.domain nginx/nodejs** 等等
http 請求包含哪些字段 分別是什麼意思
js 有哪些資料型別 如何判斷? null 和 undefined區別 應用場景?
基本型別和複雜型別, typeof instanceof object.prototype.tostring 第二個答出來, 平時工作中很少注意到
new string('a') 和 'a' 是一樣的麼?
乙個是字串物件,乙個是基本型別
移動端如何實現下拉到底部 跟隨移動 結束後回彈的動畫?
了解iscroll的話,應該不難
移動端如何優化首頁白屏時間過長 ?
雅虎軍規,還有一些其他的移動端優化,還有離線包或者serviceworker之類的,還趁機問了下團隊是採用哪種方案,也是離線包
es6 generator函式簡述
陣列去重實現?
網上很多, 說了new set([...array]) 迴圈遍歷indexof 最快的物件鍵值對的方法
js浮點數運算不精確 如何解決?
這個真不會, 回來看了下才知道
工作中最得意和出色的點, 頭疼的點, 問題如何解決的
為何換工作?
哈哈, 回答--- 大廠夢~
聊了下阿里的壓力,文化
這一面據說是p8大佬,面的時候並不知道,聊的時候挺晚的了,沒之前緊張,輕鬆了很多公司的前端工程化實踐
轉行之後是如何自學前端的, 學習途徑 有沒有一些自己的**
dom基礎知識,新增元素,刪除元素等等...
dom節點型別
這就屬於給自己挖坑, 提到了... 結果太久沒看了,忘了
正規表示式如何匹配一段url ?在正規表示式中有哪幾種作用?
正則平時寫的比較多,同事經常會讓我幫忙寫正則, 這個倒是沒啥問題
移動端優化方式? 離線包是如何實現的?
最後聊了一下專案,聊了一下目前公司
最後跟我說技術面試通過了(很爽快~), 後面會有hr來面我...
後面就是很緊張的通過了hr面試, 定級p6
目前還在最後的流程中, 還在等待offer, 祝我一切順利吧! ^ - ^
阿里巴巴前端面試分享 社招(p6)
面 簡單自我介紹,做過哪些專案,使用哪些技術棧 如何看待前端框架選型 vue的如何實現雙向繫結的 react 虛擬dom 是什麼?如何實現?說一下diff演算法 工作中最出色的點,和你最頭疼的問題 如何解決的 平時如何學習,最近接觸了解了哪些新的知識 技術一面 簡單自我介紹,介紹一下你的專案,技術棧...
阿里巴巴前端面試分享 社招(p6)
簡單自我介紹,做過哪些專案,使用哪些技術棧 如何看待前端框架選型 vue的如何實現雙向繫結的 react 虛擬dom 是什麼?如何實現?說一下diff演算法 工作中最出色的點,和你最頭疼的問題 如何解決的 平時如何學習,最近接觸了解了哪些新的知識 簡單自我介紹,介紹一下你的專案,技術棧 react和...
站長建站兩年經驗分享
第一,做 需要選擇程式,而且程式的選擇對 的影響很大,關係到後期 功能公升級。我就遇到了這樣的問題,由於先前的 是想做乙個分享快樂趣味的部落格,由於一直是我乙個人在發表文章,所以就選擇了zblog的部落格程式,但是隨著 的發展,愈來愈多的訪客需要分享他們的文章和遇到的快樂開心的事,而這個是zblog...