此次找工做也面了好幾家公司,也經過了好幾家公司的面試,畢竟以前也準備了一段時間,因此面試的時候內心也不是很虛。css
這裏記錄一下面試過程當中被問到的問題,不過從面試第一家公司開始到最終入職,已經有一個多月的時間了,因此有些問題已經想不起來了,這裏只記錄一些我還記得的問題。html
一、問怎麼判斷數據類型?前端
instanceof, Object.prototype.toString().call()vue
二、問instanceof是什麼意思?接着問原型鏈等等react
三、什麼是閉包?webpack
四、柯里化了不瞭解?es6
五、怎麼實現 new 方法?web
六、用過promise 哪些方法?promise怎麼實現的?面試
七、解釋一下eventloopajax
八、ajax 怎麼實現的?
九、解釋一下koa洋蔥模型
只記得這些了。。
先作一套題,主要考察this、eventloop、dom的事件機制,還有一些編程題(字符串去重,繼承, es6, css等等),而後對着這套題,各個都延伸問了一下。
後面是對着簡歷開始問了:
一、作的項目介紹一下,聊了很久。。。
二、vue的mvvm的實現原理
主要就是雙向綁定的依賴收集,觸發更新的實現
三、vue虛擬dom的diff算法原理
四、雙向綁定的觸發更新到真實dom更新這個過程是怎麼實現的?(當時沒答出來)能夠參考這裏
五、問了一些react的問題,我react不熟。。
六、問了webpack的一些loader以及plugin的用法,好比處理less文件須要哪些loader,url-loader和file-loader是幹嘛用的,用過哪些plugin,幹嗎用的。
七、聊了一下babel和Node
八、有什麼須要問的?面試官介紹了一下貝殼找房上海側的業務
一、實現es6的flat()方法
二、實現dom的事件委託
三、0.5px的豎線怎麼實現?
四、promise相關問題
五、es6 哪些新特性?聊了一下解構賦值,async、await等等,let 和 var的區別(變量提高)
六、性能優化有哪些方法?扯了一堆
七、CommonJS和es6 module區別
八、瀏覽器強緩存和協商緩存
九、三欄佈局怎麼實現?聖盃佈局和雙飛翼佈局,BFC
還有一些問題暫時想不起來了。。。
二面 就聊了一下項目和經歷、以及興趣等等,面試官介紹了一下觸寶的業務
一面
一、聊項目,聊了好久
二、import 按需加載問題,按需加載的組件chunk什麼時候加載,經過什麼方式加載?
按需加載的chunk在dom更新時須要加載這個組件的時候纔會去服務器上請求這個chunk文件,經過相似jsonp的方式進行加載。
三、打開頁面時,若是app.js已經加載完成,而vendor文件尚未加載好,而app.js顯然是依賴vendor, 爲何執行app.js不會報錯?
這個是由webpack打包以後chunk文件中摻雜的webpack runtime代碼控制實現的(後面又聊了一下webpack runtime)
四、作一些編程題,主要是es6以及原生js相關的
五、聊了一下前端性能優化
六、css Module瞭解嗎?less的scoped怎麼實現的
還有一些記不得了。。。
二面
一、Vue的MVVM原理,動態組件
二、vuex用法和原理,vuex和mvvm的不一樣(雙向數據流和單向數據流)
三、聊了一下Vue和react的區別
四、babel的原理
五、前端優化的思想,比較抽象,瞎聊。。
三面
一、介紹項目,聊了一會。
二、一些功能設計的題目,就是給一個具體需求的場景,怎麼實現這個功能,不是很難。
三、各類聊。。
ps: 整體上,小紅書的面試體驗是最好的,面試官都很客氣,聊得也很愉快。
一、實現sleep()方法
二、Vue router有哪些模式? 是怎麼實現的?爲何切換路由,頁面不會刷新?
hash和history兩種模式,實現原理主要仍是從依賴收集和觸發更新兩個方面說。
三、webpack的代碼分割怎麼實現的?
四、說說剛纔提到的CommonsChunkPlugin和splitChunks的區別
五、前端緩存怎麼實現?(扯扯強緩存和協商緩存,重點問了ETag如何實現緩存)
一、就聊了項目。。。
ps: 拼多多的面試體驗應該是最差的,特別是二面(是個leader吧)很是高冷,交流上很不暢,有點不耐煩。。
一、先作一套題,css、eventloop、this、算法題(不是很難)等等,而後一題一題挨個問,作一些延伸。
二、new 的實現
三、promise的原理
四、寫一個類,簡單實現Vue的event bus的發佈訂閱功能
五、webpack相關的,loader和plugin,代碼分割,跟以前幾家公司問到的相似
六、babel原理,還問了一些es6語法轉es5怎麼實現
七、Node相關的,作過哪些項目
一、聊項目
二、Vue 的MVVM原理
三、一些組件功能設計的問題
四、實現二叉樹的寬度優先遍歷
五、元素水平垂直居中有哪些方法
六、ajax的原理,以及XMLHttpRequest
七、Vue和react的區別
八、各類聊。。
一、聊項目
二、各類聊。。