年末的大廠前端面試總結(20屆雙非二本)-終入字節

關注若川視野, 回復"pdf" 領取資料,回復"1",可加群長期交流學習

自我介紹

雙非二本,軟件工程,自學前端,今年畢業。

喜歡編程,古風,日語和英語。

常以冷月心之名混跡前端江湖,也曾在混跡網文圈時用冷月心做筆名簽約掌閱,作品《清起風云》,百度可查。

求職期間寫了一個小博客,感興趣的可以看看 https://lengyuexin.github.io/gatsby

為什么離職

這個問題,幾乎我參加的每一場面試都會問到。我是2020.7.1畢業,最后離職日期是2020.12.18。這段工作經歷很短,被問到也很正常。最主要原因還是追求更大的發展空間和技術突破。

在我導師跳槽去美團后,團隊內就出現了明顯的技術斷層。我遇到的某些問題,能夠與之商量的同事也越來越少。至于源碼,數據結構和算法層面的交流就更少了。

而這些深層次的東西,才是真正意義上的技術棧,是真真正正能提高個人技術能力和核心競爭力的東西。

跳槽前該考慮的事

在我看來,決定是否跳槽成功的核心因素有兩個:個人技術能力和當前招聘市場的大環境。建議先將自身技術能力和招聘要求做一個比對,如果覺得可以勝任,再去投遞也不遲。至于市場環境,大概是金三銀四,金九銀十和年末擴招三大階段吧。

如果技術已經準備ok,簡歷也完善過,那就可以開始投遞了。內推也好,其他招聘軟件也好,自行選擇即可。

最最最重要的一件事,不建議裸辭。如果裸辭,做好心理準備。大多數情況下,換一份滿意的工作,整個面試流程加offer審核到offer call再到最終郵件offer,耗時一個月是很正常的。在職面試都會有焦慮感,更何況是裸辭。

如果工作年限很短,又是裸辭,那我只能說在簡歷篩選上會很吃虧。比如我,投字節15個崗位,都被干掉,到第16個才約上面試。投快手4次內推,被干掉4次,最快的一次一小時左右就把我干掉了。不得不說,快手效率還是到位的。不死心的我又投了第五次,成功約上了面試。至于后來為什么能再約上猿輔導,百度,58同城,去哪兒網,美團的面試,我猜應該都是因為運氣...又或者,實在很缺人?

技術方面該如何準備

結合我20多次的面試經驗,總結出一個核心:基礎。即便是大廠,也不會忽略問基礎,反而更重視這個。基礎不穩,地動山搖。基礎穩如狗,大廠隨便走。以下我提到的資料都會在文末給出鏈接,大家可自行查看。

js方向

對于js而言,我覺得基礎應該是基本語法,數據類型,異步,各種常用api,this,es6+,原型和原型鏈,繼承,作用域和作用域鏈,閉包...等等。建議閱讀紅寶書第四版并結合神三元的js靈魂之問系列按需完善。

css方向

對于css而言,我覺得基礎應該是常用選擇器,權重,垂直居中方案,rem和em,flex,動畫...等等。對于這方面的準備,網上很多博客就能解決。如果想系統了解一下,推薦張鑫旭的《css世界》。flex的話,推薦小青蛙網站和阮一峰的博客。

源碼方向

react技術棧,推薦閱讀的源碼是react,react-router,redux,react-redux,axios。

vue的話,推薦閱讀的源碼是vue,vue-router,axios,vuex。

如果涉及nodejs,那koa2,koa-router,express,也都可以安排下。

至于源碼方向的推薦有三個:

  • 卡頌的react技術揭秘

  • 若川的源碼系列(很多,文末直接貼作者主頁了)

  • 難涼熱血的vue源碼分析

數據結構和算法方向

面試過程中問到算法很正常,這個時候就要注重平時的積累了。

算法方向推薦的有四個:

  • 極客時間王爭的數據結構與算法之美

  • 政采云團隊的博客--算法篇

  • 天天的前端算法總結

  • ssh的前端算法進階指南

  • 修言算法小冊

計算機網絡方向

無論是前端還是后端,通信都是極為重要的概念,最起碼應用層http和https要有一定的了解。

如果想全面了解一下,推薦謝希仁那本特別厚的《計算機網絡》,看前六章就可以了。

如果覺得特別多,可以看一下神三元的http靈魂之問。

瀏覽器方向

這部分只推薦一個,極客時間李兵老師的瀏覽器專欄

其他方向

我這邊因為項目中會兼顧一些運維的工作,所以對nginx常用配置和linux常用命令有一定的了解, 這部分可參考我之前寫的筆記。當然這個不算必須項,大概可以算個加分項吧。

面經

接下來我會分享我面試的七家公司的面經,可作為面試參考。

58同城一面

  1. 自我介紹

  2. 諸多業務問題

  3. 項目中主要負責什么

  4. 原生js怎么實現拖放

  5. react-dnd拖放的核心API

  6. react diff 算法復雜度是多少

  7. diff造成的非預期更新如何解決

  8. 如何實現路由監聽

  9. 頁面適配方案:百分比,flex,vh,vw

  10. 平時對js和css基礎有過了解嗎

  11. 從地址欄輸入地址到頁面回顯,都發生了什么

  12. 解釋下重繪和回流

  13. 說一下js中的類和java中的類的區別

  14. 說一下js中如何實現函數重載

  15. webpack動態加載

面試感受:

58同城是我面的最早的一家,一面是電話面,大概聊了有一個小時。整個面試過程很nice,最后讓面試官給我一個評價。講真,面試官很真誠,說我的表現是超預期,但是在年限和經驗上有所欠缺,hr那邊可能會影響定級。我表示理解,畢竟確實年限短。

58同城二面

  1. 自我介紹

  2. 為什么剛工作不久離職了

  3. 業務中負責什么

  4. node偏運維方向的有沒有了解過(docker k8s)

  5. 業務中主要用node干了什么

  6. react生命周期有了解嗎

  7. 說下react-router源碼你看完后印象深刻的部分

  8. 數組去重怎么實現,不用set怎么實現

  9. 實現一下es6的extends

  10. 有沒有接觸過移動端,小程序,h5等方向

面試感受:

二面是視頻面,面試官和我聊了一下接下來的發展方向,描繪了一張美好的藍圖。聽起來還不錯,雖然沒聽懂。某些不可說的原因,58同城結束在二面,后續沒有再進行。

百度一面

  1. 自我介紹

  2. js數據類型和存儲方式,如何判斷

  3. typeof [] 返回什么

  4. new操作符 做了什么

  5. 數組中一萬個數據,訪問第一個和最后一個效率會有什么差異,為什么

  6. forEach for in for of 的差異

  7. 如何改變this指向

  8. js中函數是如何調用的

  9. 說下原型和繼承

  10. 瀏覽器緩存

  11. 說下瀏覽器事件循環

  12. js是單線程還是多線程,為什么這么設計

  13. css弧形永動動畫實現

  14. css 1px像素適配

  15. css設置div寬高比3:4 padding-bottom:75%

  16. 說下transform 和transition

  17. 類數組怎么轉換成數組

  18. new Array()接收的參數是什么

  19. get和post的區別

  20. http狀態碼

  21. react生命周期

  22. setState更新是同步還是異步

  23. axios源碼整體架構

  24. 手寫Promise.all

  25. Promise中用了什么設計模式

  26. Promise都有哪些狀態

  27. 算法12345678.01 =>123,456,78.01

  28. 算法12345678.01=>12,345,678.01

  29. 從地址欄輸入地址到頁面回顯,都發生了什么

面試感受:

女面試官,題是有點多,但感覺還好,都是偏基礎。印象最深的是算法部分,面試官出了題,我直接說了思路,好像還巴拉巴拉說了一下其他的。面試官說:哎呀,我只是想讓你做個題...(撒嬌語氣??) 好的,做題。

百度二面

  1. 自我介紹

  2. 業務中你用node都做了什么

  3. 你對node還有什么想分享的嗎,覺得用起來爽的部分(gzip pipe)

  4. 業務中數據是怎么存儲的,node為什么沒有接入數據庫

  5. node單線程容易崩潰,怎么維護服務的

  6. pm2內部機制了解嗎

  7. cluster了解多少

  8. 業務線如何用端口號區分(nginx http-proxy)

  9. 業務上有什么坑嘛 (環境多)

  10. webpack常用配置

  11. webpack插件寫過嗎

  12. webpack常用插件

  13. 關于webpack你還有什么想分享的嗎 (同步加載異步加載的實現)

  14. 瀏覽器地址欄輸入請求地址到頁面回顯發生了什么

  15. 重繪和重排了解嗎

  16. 重繪和重排如何做取舍

  17. 如何將css內容插入到頁面上(style-loader)

  18. 如果讓你實現style-loader,你打算怎么做

  19. 算法題-手寫快排

  20. 算法題-查找一個字符串中出現次數最多的字符

  21. 算法復雜度層面比較一下快排和其他排序

  22. 項目是內部使用嗎 (是,未開源)

  23. 有沒有考慮過高并發場景,如何解決(緩存,壓縮,負載均衡,集群)

  24. 現在是在職狀態嗎

  25. 最后離職日期是多少

  26. 手上有沒有其他offer

  27. 如果今晚三面是否有時間(說有上線,推遲了)

  28. 反問一:百度App部門有沒有使用node的場景

  29. 反問二:App部門是不是只有移動端場景,有沒有其他的,比如pc

  30. 反問三:百度怎么做容災的

  31. 反問四:百度App是分工明確還是也會出現身兼多職的情況

  32. 反問五:給我一個今后學習發展的建議和這次面試的簡單評價

面試感受:

不得不說,和二面面試官聊的很是帶勁,給我很多鼓勵,完事大概是晚上十點多了,意猶未盡。當場要整三面,當時也恰好11點要上線,就改時間了,三面約到了一周后。

百度三面

三面面試官是手機百度部門的leader,電話面的,主要是問了我一下期望薪資和來百度的意愿。然后又是一波鼓勵,還教我怎么談薪資,感動到爆炸。說實話當時我已經決定同等薪資必去百度,奈何后續流程太長了,我已經接到抖音正式offer郵件那邊還沒反饋。

抖音一面

  1. 自我介紹

  2. 說一下業務中你負責的部分

  3. 業務中數據是怎么存儲的

  4. 業務中拖拽如何控制位置的,適配怎么處理,全屏怎么控制

  5. 你用nodejs和java分別做了哪些業務

  6. 業務中的縮略圖是什么,實現方案

  7. 說下jwt

  8. 說下js中數據存儲方式

  9. 知道內存碎片怎么產生的嗎 v8

  10. post請求有幾種方式觸發

  11. post的ContentType類型有哪些(application/x-www-form-urlencoded/multipart/form-data/text/plain)

  12. 知道jwt有哪些缺點嗎

  13. 說一下http和https的區別

  14. https的tls了解嗎

  15. 說一下鎖(懵逼),舉例是讀鎖和寫鎖

  16. 為什么要去看axios的源碼,大體實現

  17. 業務中權限是怎么接入的,數據表怎么劃分的

  18. 能說一下css盒模型嗎

  19. 說下box-sizing中border-box 和content-box的區別

  20. this指向

var?fullname?=?'1';
var?obj?=?{fullname:?'2',prop:?{fullname:?'3',//如果改成普通函數呢?getFullname:()=>?{return?this.fullname;}}
};
console.log(obj.prop.getFullname());
var?test?=?obj.prop.getFullname;
console.log(test());
  1. 算法題1:節點渲染


const?el?=?require('./element.js');
const?ul?=?el('ul',?{id:?'list'},?[el('li',?{class:?'item'},?['Item?1']),el('li',?{class:?'item'},?['Item?2']),el('li',?{class:?'item'},?['Item?3'])
])
const?ulRoot?=?ul.render();
document.body.appendChild(ulRoot);<ul?id='list'><li?class='item'>Item?1</li><li?class='item'>Item?2</li><li?class='item'>Item?3</li>
</ul>
  1. 算法題2:屬性獲取

{a:{b:{c:{f:"aa"}},d:{e:{g:"bb"},h:{i:"cc"}},j:{k:"dd"}}
}
//?[f,g,i,c,e,h,k,b,d,j,a]

面試感受:

面了百度和58同城,有點膨脹,字節讓我清醒。算法被吊打,只寫了個大概和思路。感覺要涼了,最后反問環節我已經沒什么想問的了。如果說有,我想問一下我還有機會嗎?最后說了一下我的遺憾,表示我擅長的沒有完全體現出來,命中的很多盲區。好家伙,峰回路轉,面試官說我還是有其他亮點的,再給我一次機會,就到了二面,感動到冒泡泡...

抖音二面

  1. 看你簡歷有提到nginx配置,主要配置了什么

  2. 說下上線部署流程中常用的linux命令

  3. node的進程守護怎么做的,發現非預期故障怎么排查

  4. 項目中為什么選擇用nodejs

  5. 業務中負責哪些部分

  6. 手寫一個koa2的compose

  7. 手寫一個Scheduler類,實現并發控制


//JS實現一個帶并發限制的異步調度器Scheduler,
//保證同時運行的任務最多有兩個。
//完善代碼中Scheduler類,使得以下程序能正確輸出:
//Scheduler內部可以寫其他的方法
class?Scheduler?{add(promiseCreator)?{?...?}//?...
}const?timeout?=?(time)?=>?new?Promise(resolve?=>?{setTimeout(resolve,?time)
})const?scheduler?=?new?Scheduler()
const?addTask?=?(time,?order)?=>?{scheduler.add(()?=>?timeout(time)).then(()?=>?console.log(order))
}addTask(1000,?'1')
addTask(500,?'2')
addTask(300,?'3')
addTask(400,?'4')
//?output:?2?3?1?4//?一開始,1、2兩個任務進入隊列
//?500ms時,2完成,輸出2,任務3進隊
//?800ms時,3完成,輸出3,任務4進隊
//?1000ms時,1完成,輸出1
//?1200ms時,4完成,輸出4

面試感受:

二面問的不多,主要是寫代碼吧。Scheduler沒有完整寫出來,koa2的compose寫出來了,其他的回答還行,完事約了三面。抖音二面時快手hr打電話告訴我二面過了,當場愣住,我不是正在二面嗎?怎么就過了?

抖音三面

  1. 為什么工作不久離職

  2. 你覺得你擅長哪些技術(react+node+計算機網絡)

  3. 說一下進程線程,如何通信?

  4. 兩個線程可以直接通信嗎

  5. 你覺得node的適用場景是什么

  6. 相比其他后臺語言,為什么你更傾向node?

  7. 在業務開發上,你覺得node和java的區別是什么?

  8. node服務的性能監測有沒有了解過?

  9. http中間人劫持了解嗎?如何解決呢?(說了https)

  10. 為什么https可以做到避免中間人劫持?(說了加密層tls)

  11. 展開說一下tls握手(對稱,非對稱,對稱+非對稱的組合)

  12. 加密套件指的是?(舉例了AES)

  13. 業務中的安全問題有沒有遇到過?怎么解決的?(說了base64,cors,xss,csrf,cookie的httponly和samesite屬性)

  14. 你傾向的技術領域和業務場景是怎樣的?

  15. 算法1:二叉樹層序遍歷和s形的層序遍歷

  16. 算法2:如何在從左到右升序,從上到下升序,每一行第一個元素大于上一行最后一個元素的二維數組中查找某個數字的索引?如果是一維數組呢?

  17. 算法3:二分法的實現

  18. 算法4:單鏈表反轉

  19. 反問:抖音安全部門主要的業務范圍是什么?

面試感受:

三面問的更全一點,理論和代碼層面的都有,算法2沒寫出來,其他的應該都抗住了。后續流程很順利,已拿offer。

猿輔導一面

猿輔導那天是招聘專場,一面到底,直通hr面。因為某些非預期情況,不再考慮這邊,選了抖音。

  1. 自我介紹

  2. 業務中負責的部分

  3. 業務中數據怎么存儲的

  4. 為什么堅持用node

  5. 算法1:promise并發控制

  6. 算法2:前k個元素

  7. js中遍歷數組的方式

  8. react中遇到的坑,怎么解決的

  9. 說一下類組件和函數組件

  10. 選擇hooks的優點

  11. 什么時候用類組件

  12. 說下http緩存,如何實現

  13. 反問一:這邊有沒有使用node的場景

  14. 反問二 :業務線中使用的技術棧是什么

  15. 反問三:有沒有jq那種老項目

  16. 反問四:面試評價和今后發展的建議

面試感受:

和面試官聊的很開心,從技術到業務到技術選型,巴拉巴拉聊了很多。那邊是用的angular11,還有vue2.x,后續打算遷移到react技術棧上。

猿輔導二面

  1. 自我介紹

  2. 諸多業務問題

  3. react diff算法如何實現的,比對復雜度是多少

  4. 如何使用react-dnd完成拖放的,說下主要API

  5. 大數據量場景前端怎么處理,讓頁面展示盡可能流暢

  6. 業務中看你有涉及到node的文件讀寫操作,有沒有想過如果某個文件被鎖怎么處理?

  7. 前端縮略圖(截圖)方案是什么

  8. 業務中的實時保存會有性能開銷,又沒有做什么優化?

  9. node轉buffer輸出字符串會比直接string輸出快,你的依據是什么?

  10. 算法一:給定一串數字,求它全排列結果

  11. 算法二:實現類似百度那種聯想搜索(模糊匹配)

  12. 收尾閑聊:你覺得一面難還是二面難?我說二面吧,數學不太好,全排列沒屢清楚。

面試感受:

和面試官聊的依舊很開心,二面聊了很多業務。好家伙,我和面試官開始在白板上畫圖交流了。咱數學確實菜,全排列也沒整清楚,和邏輯混一起更想不明白。面試官表示理解,然后約了三面,部門大leader。

猿輔導三面

  1. 根據簡歷確認了一下基本信息

  2. 為什么剛工作幾個月就離職

  3. 看你大學學的挺多的,高中是不是沒好好學習呀(笑,解釋說高中是為了高考被動式學習,大學是為了工作主動學習)

  4. 日語N2是指?(解釋了下等級,日企門檻)

  5. 看你對前端熱情挺高的,為什么選擇了前端呢?

  6. 然后面試官直接給我安排了研發方向,前期ng,后期react,說是在組建一個復雜架構小組,目前兩人,預計4-6人。(說實話,有點慌)

  7. 做個題吧,給定學生id和分數組成的列表,寫一個函數,通過id獲取排名,注意分數相同并列名次的處理(寫了七七八八,后邊面試官說思路可以,就這樣吧)

  8. 然后讓我等下hr,面試官去下一場面試了(面試專場,一下午來了大概20+,每個面試官都很忙,后續基本沒有反問時間)

面試感受:

親切,看面試官第一眼就覺得很親切。整體聊的也很順利,過往經歷和一道算法題,完事。看的出來,是想要我的。之后hr面結束,打道回府。

猿輔導hr面

  1. 之前有了解過猿輔導嗎

  2. 確認了一下簡歷基本信息

  3. 還有其他公司在面試嗎,進展如何?

  4. 說了下福利,餐補800,六險一金,不限量零食下午茶,健身房,晚下班打車企業報銷,巴拉巴拉……說了好多福利

  5. 聊了下薪資,之前的,預期的。

  6. hr表示不會因為工作經驗而刻意壓薪資,扁平化管理,會根據每一輪面試官評價來定(給我的預期是校招生水平,實際是超預期)

  7. 你是97年的嘛?(驚訝) 感覺你表現上更成熟一些(我說和個人經歷和讀的書有關吧)

  8. 個人經歷,比如呢?(笑,愛情算嗎?)

  9. 然后和hr聊起了愛情觀

  10. 所以你現在狀態是?(單身)

  11. 大學讀了哪些類型的書?

  12. 我問了下工作時間,早10晚7,雙休不打卡

  13. hr表示offer流程會根據我這邊其他公司面試進展隨時同步,很熱情的送我到電梯門口

面試感受:

面試體驗確實不錯,后期就有點遺憾了。也難怪,我的年限和期望偏差確實有點大,這邊流程上多加考慮也可以理解。

快手一面

  1. 自我介紹

  2. 項目應用場景和優勢

  3. 寫個繼承案例

  4. Object.create實現

  5. Object.create傳null和{} 有啥區別嗎

  6. 手寫promise(寫完then后面試官說可以了)

  7. 實現一個數組扁平化方法flat

  8. js為什么設計成單線程

  9. 事件循環說一下

  10. Promise里都是微任務嗎

  11. 平時怎么學習的

  12. koa2中間件和redux中間件比較,原理

  13. koa2的洋蔥模型和redux中間件的洋蔥模型一樣嗎

  14. 兩個compose的大概實現,reduce的妙用

  15. 對比一下express,koa2(我連同比較了egg)

  16. 為什么不要在循環、條件語句或者嵌套方法中調用Hooks

  17. new Promise返回的實例和實例then方法執行后返回的promise是一個嗎

  18. 平時有瀏覽過哪些國外的網站嗎

面試感受:

女面試官,聊了很多,感覺想早點下班。hh,我要寫代碼,剛寫了大概,面試官說可以了,可以了,之后約了二面。

快手二面

  1. 說一下為什么要用hooks,解決了什么問題

  2. react函數組件和類組件觸發更新的方式有哪些

  3. react的強制更新有了解嗎

  4. react在一秒內點擊按鈕多次(+1),如何獲取最后一次的新狀態

  5. react-router權限路由寫一下

  6. 實現一個帶緩存的求階乘函數

  7. 說說你對koa2中間件的理解

  8. 某些接口允許跨域,某些不允許,如何實現?能不能使用koa2中間件的方式實現一下?

  9. koa2中ctx.set的等價寫法

  10. 用node如何實現一個帶壓縮和緩存的http-server?

面試感受:

面試官給我一種道法自然,萬法皆通的感覺,某些想法秀到我了,很強。問的基本都答上了,很快約了三面。

快手三面

  1. 自我介紹(側重說下個人優勢和項目亮點)

  2. 為什么剛工作不久離職

  3. 如果有成熟穩定的A團隊和從0到1的B團隊,你傾向哪種

  4. 如果B團隊做不好有可能會因為業績不達標被砍掉,做的好會有高收益,A團隊一直是穩定的,你傾向哪種

  5. A團隊業務線偏向底層功能開發,為B團隊服務。B團隊在A團隊產出基礎上,會面對更多復雜業務,你傾向哪種

  6. 反問1:剛才提到的AB部門的業務覆蓋場景是只有pc端嗎?還是也有其他端?

  7. 反問2:工作模式是否為導師制?

面試感受:

無關技術,只談選擇。我選了BBB。之后約了hr面,然后又加面,其實也沒問太多技術問題。流程和字節基本同步,薪資待遇持平,只是多了一個背調。我比較想早點入職,選了更快的抖音。說實話,有點舍不得負責招聘的hr小姐姐,hh,給了我很多祝福。

美團一面(部門A)

我懷疑美團有毒,二面必掛。第一次面到2面,題基本都答上了,莫名掛掉。然后又被打撈,依舊面的很順利,二面掛掉... 好家伙,分手都沒個預兆。遺憾是有,但也無能為力。美團到店,我可能到不了店了。

  1. 自我介紹

  2. 為什么剛工作不久就離職了

  3. 項目中常用的linux命令

  4. 業務中打包怎么做的

  5. 如何查詢某個進程占用的端口號(linux中) netstat -tunlp|grep 80 lsof -i:80

  6. 實現一個new操作符

  7. git reset 和git rebase了解嗎

  8. 實現Object.create

  9. 實現數組扁平化函數flat

  10. webpack有哪些優化方案

  11. loader和plugin有寫過嗎

  12. react合成事件了解嗎?

  13. 這些事件處理函數最終掛載到了哪?

  14. react中如何阻止冒泡

  15. react中setState同步還是異步

  16. react15和react16更新機制的差異

  17. 為什么react16架構升級后就能中斷更新,根據什么決定是否中斷

  18. react源碼看過哪些?

  19. react中調和的部分是在哪個包?有看過實現嗎

  20. hooks為什么不能在條件或循環中使用,原理清楚嗎?

  21. react為什么要引入hooks,解決了哪些問題

  22. 類組件如何實現邏輯復用?

  23. 打印題

const?o1?=?{text:?'o1',fn:?function()?{?return?this.text}
}const?o2?=?{text:?'o2',fn:?function()?{return?o1.fn()}
}const?o3?=?{text:?'o3',fn:?function()?{var?fn?=?o1.fnreturn?fn()}
}
console.log(o1.fn())
console.log(o2.fn())
console.log(o3.fn())

面試感受:

美團的面試還是有點東西的,問的很全。linux那個和git rebase不太清楚,其他的基本都ok,然后約了二面。

美團二面(部門A)

  1. 自我介紹

  2. 諸多業務問題

  3. 你期望的業務場景或者工作環境

  4. js為什么會有回調地獄呢

  5. 為什么java沒有回調地獄

  6. promise.all返回的是什么

  7. promise和async你覺得差異點是什么

  8. 算法1:rgb轉16進制函數

  9. 算法2:

//實現一個retry函數
//如果fn返回成功,則打印一下,最終結果成功
//如果fn返回失敗,則打印times下,最終結果失敗
retry(fn,times)
retry(()?=>?{console.log('doing')return?Promise.reject(Error('done'))
},?3)retry(()?=>?{console.log('doing')return?Promise.resolve('done')
},?3)
  1. 打印題

var?a?=?20;
var?test?=?{a:?40,init:?()?=>?{console.log(this.a);function?go()?{console.log(this.a);}go.prototype.a?=?50;return?go;}
};var?p?=?test.init();
p();
new?p()

面試感受:

題基本都答上來了,莫名掛。被打撈的時候問了一下一面面試官,他表示也很迷,說確實有二面面試記錄,但是沒評價??

美團一面(部門B)

  1. 自我介紹

  2. koa-compose實現

  3. react權限路由實現

  4. 前端路由實現原理(對比react,vue)

  5. 單頁面應用和傳統服務端渲染的差異比較

  6. 前端頁面性能優化

  7. nginx 負載均衡配置

  8. node端處理大文件上傳

  9. react hooks用過哪些

  10. react使用心得

  11. redux模板語法的改良(使用裝飾器)

  12. 聊一下代碼檢查(eslint,ts)

  13. 防抖節流區分,手寫

  14. 實現map,reduce

  15. 統計字符串中次數最多字母

面試感受:

和面試官聊的很帶勁,好家伙,相見恨晚。面試結束不到一小時hr打電話約二面,并告知一面給了滿分。

美團二面(部門B)

  1. 如何區分函數是new調用還是直接調用

  2. 解釋下下面兩段代碼執行結果的差異

function?foo()?{foo();
}
function?foo()?{setTimeout(()?=>?{foo();},?0)
}
  1. requestAnimationFrame 和 requestIdleCallback了解嗎

  2. 說下react的key

  3. node中加載相同模塊,會重復打印嗎

//a.js?
function?foo()?{console.log('foo');?//?}
foo();
//b.js
require('./a.js');
require('./a.js');
//node?b.js
  1. 如何設計這套緩存

  2. http模塊起一個服務,如果想修改請求體并轉發給另一個服務,怎么實現

  3. 說下react-redux干了什么事

  4. mapStateToProps的第二個參數作用

  5. 實現一個Map

  6. 說下react常用的性能優化手段

  7. linux中exec ls 和ls 差異

  8. linux 中的source了解嗎

面試感受:

我和面試官都提前到了視頻會議室,然后我提議可以提前開始。面試官說ok,大概是45分鐘。好家伙再問一個,再問一個,再問一個...差不多一個半小時,刺激。最后莫名掛掉,原因未知...

去哪兒網一面

  1. 自我介紹

  2. 說一下項目中遇到的挑戰和你認為的亮點

  3. 能說一下你用mvc模式重構node業務代碼的大概方向和效果嗎

  4. 說下跨域

  5. 這個項目里前后端聯調的話,有問題一般怎么排查(表示基本都是自己寫)

  6. 追問:為什么是都要自己寫呢?(相對偏向全棧,人少)

  7. 感覺你個人比較喜歡node,是想往這個方向發展嗎

  8. 對技術棧或新技術上是怎樣的一個態度

  9. 項目中寫的css多嗎,主要是哪些?(說了less,css,styled-components)

  10. 有沒有接觸過移動端,小程序,App這些場景

  11. 有在面其他公司嗎?進展?

  12. 為什么剛工作不久離職了

  13. 你說離職是追求技術的突破,能解釋下你想要的是怎樣的嗎

  14. 對于公司和業務部門,你更傾向哪一邊的考慮(類比了選學校和選專業)

  15. 事件循環的打印題(比較基礎)

setTimeout(()?=>?{console.log(1)
},?0)
new?Promise((resolve)?=>?{console.log(2)for?(let?i?=?0;?i?<?10000;?i++)?{if?(i?===?9999)?{?resolve()?}}console.log(3)
}).then(()?=>?{console.log(4)
})
console.log(5)

面試感受:

女面試官,聊的也還行,比較滿意我的表現吧,很快約了二面,現場。

去哪兒網二面

  1. 自我介紹

  2. 為什么剛工作不久就離職

  3. 諸多業務問題

  4. 說下你擅長的

  5. 解釋下重繪和回流

  6. 說一下你知道的瀏覽器渲染相關的點

  7. 你覺得有哪些優勢

  8. 平時怎么學習的

  9. 說下tls握手

  10. 還有在面其他公司嗎?

  11. 前端如何做性能優化

  12. 算法1:數組中出現最多的數字

  13. 算法2:斐波那契數列

  14. 閑聊:你覺得你的缺點是什么

面試感受:

感覺面試官有些漫不經心,簡單聊了聊,然后我說了期望薪資,好家伙,估計又說多了...沒后續。

致謝

在我看來,面試并不是一個人的戰斗。站在巨人的肩膀上,可以加快你前進的速度。感謝這一路上,直接或間接給我幫助的大佬們,排名不分先后。

  • 磐沖, 曾多次參加磐沖大佬組織的直播面試,表示受益良多。

  • 張仁陽, 珠峰架構公開課諸多知識點面試命中

  • 若川, 源碼系列收獲頗豐

  • ssh, ?react性能優化方案,多次面試命中

  • 神三元,靈魂之問系列查漏補缺

  • 卡頌,react源碼系列,多次面試命中

  • 阿紫, 鼓勵君+祝福小天使

  • 大月, 經歷很相似的戰友,抱團取暖

相關鏈接

  • 紅寶書第四版:https://www.ituring.com.cn/book/2472

  • js靈魂之問(上):https://juejin.cn/post/6844903974378668039

  • js靈魂之問(中):https://juejin.cn/post/6844903986479251464

  • js靈魂之問(下):https://juejin.cn/post/6844904004007247880

  • css世界:https://www.cssworld.cn/

  • flex小青蛙:http://flexboxfroggy.com/

  • flex阮一峰博客:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

  • 卡頌的react技術揭秘:https://react.iamkasong.com/

  • 若川的源碼系列:https://juejin.cn/user/1415826704971918/posts

  • 難涼熱血的vue源碼分析:https://nlrx-wjc.github.io/Learn-Vue-Source-Code/

  • 數據結構與算法之美:https://time.geekbang.org/column/intro/100017301

  • 政采云團隊的博客--算法篇:https://101.zoo.team/

  • 天天的前端算法總結:https://juejin.cn/post/6900698814093459463

  • ssh的前端算法進階指南:https://juejin.cn/post/6847009772500156429

  • 修言算法小冊:https://juejin.cn/book/6844733800300150797

  • 謝希仁的計算機網絡:https://item.jd.com/12219883.html

  • 神三元的http靈魂之問:https://juejin.cn/post/6844904100035821575

  • 瀏覽器專欄:https://time.geekbang.org/column/intro/100033601

  • nginx筆記:https://blog.csdn.net/qq_42813491/article/details/103117799?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%252522160938095216780302981460%252522%25252C%252522scm%252522%25253A%25252220140713.130102334.pc%25255Fblog.%252522%25257D&request_id=160938095216780302981460&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v2~rank_v29-1-103117799.pc_v2_rank_blog_default&utm_term=nginx

  • linux筆記:https://blog.csdn.net/qq_42813491/article/details/88379799

推薦閱讀

我在阿里招前端,我該怎么幫你?(現在還可以加模擬面試群)
如何拿下阿里巴巴 P6 的前端 Offer
如何準備阿里P6/P7前端面試--項目經歷準備篇
大廠面試官常問的亮點,該如何做出?
如何從初級到專家(P4-P7)打破成長瓶頸和有效突破
若川知乎問答:2年前端經驗,做的項目沒什么技術含量,怎么辦?
若川知乎高贊:有哪些必看的 JS庫?

末尾

你好,我是若川,江湖人稱菜如若川,歷時一年只寫了一個學習源碼整體架構系列~(點擊藍字了解我)

  1. 關注若川視野,回復"pdf" 領取優質前端書籍pdf,回復"1",可加群長期交流學習

  2. 我的博客地址:https://lxchuan12.gitee.io?歡迎收藏

  3. 覺得文章不錯,可以點個在看呀^_^另外歡迎留言交流~

精選前端好文,伴你不斷成長

若川原創文章精選!可點擊

小提醒:若川視野公眾號面試、源碼等文章合集在菜單欄中間【源碼精選】按鈕,歡迎點擊閱讀,也可以星標我的公眾號,便于查找

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276309.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276309.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276309.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

面試題(轉的)

第一組   1.燒一根不均勻的繩&#xff0c;從頭燒到尾總共需要1個小時。現在有若干條材質相同的繩子&#xff0c;問如何用燒繩的方法來計時一個小時十五分鐘呢?  2.你有一桶果凍&#xff0c;其中有黃色、綠色、紅色三種&#xff0c;閉上眼睛抓取同種顏色的兩個。抓取多少個…

python三酷貓_洛克王國三代酷貓登場 冰水酷貓解析

洛克王國三代酷貓登場 冰水酷貓解析 洛克王國三代武斗酷貓解析三代水靈&#xff0c;在哥斯拉的傾情推薦下&#xff0c;小洛克們都已經很熟悉了吧&#xff01;那和水靈同一期出現的帥哥——武斗酷貓&#xff0c;如果三代遺傳了&#xff0c;會怎么樣呢&#xff1f;小洛克們一起來…

Linux禁止用戶登錄

轉載鏈接&#xff1a;http://blog.sina.com.cn/s/blog_4cebadd10100a9bl.html 我們在做系統維護的時候&#xff0c;希望個別用戶或者所有用戶不能登錄系統&#xff0c;保證系統在維護期間正常運行。這個時候我們就要禁止用戶登錄。 1、禁止個別用戶登錄。比如禁止lynn用戶登錄…

.NET常用功能和代碼[總結與收藏]

1. 打開新的窗口并傳送參數&#xff1a; 傳送參數&#xff1a;response.write("<script>window.open(*.aspx?id"this.DropDownList1.SelectIndex"&id1"...")</script>") 接收參數&#xff1a;string a Request.QueryString(&q…

topcoder srm 305 div1

problem1 link 直接按照題意模擬即可。 import java.util.*; import java.math.*; import static java.lang.Math.*;public class UnfairDivision {public int albertsShare(int[] assets) {final int nassets.length;for(int i1;i<n;i) {assets[i]assets[i-1];}int result0…

動圖演示23個鮮為人知的VSCode快捷鍵

原文地址&#xff1a;https://dev.to/devmount/23-lesser-known-vs-code-shortcuts-as-gif-80盡管我在VS Code中經常使用許多快捷方式&#xff0c;以下快捷方式可能會派上用場&#xff0c;但我經常忘記它們的存在。我制作了一些GIF&#xff0c;以便更好地記住它們。也許這里面也…

使用C語言進行面向對象的開發--GObject入門[5]

轉載請注明出處 blog.csdn.net/pingf0 或www.cnblogs.com/pingf 接上文這一部分簡要介紹下類的析構&#xff0c;或者成為終結。還是多說幾句&#xff0c;也算是對前文的補充1.生成一個類是由父到子&#xff0c;析構的時候自然與之相對是由子到父。2.GObject的內存管理并沒有采用…

python結課報告_Python數據分析課程到底是學什么內容的?

2020年12月4日&#xff0c;博為峰旗下學掌門召開了《Python 商業(大)數據分析師》新課程發布會。據悉&#xff0c;此次發布會上發布的《Python 商業(大)數據分析師》課程是在原《數據分析師》課程上進行了全面升級。在發布會上博為峰副總經理王琰表示&#xff0c;在未來學掌門作…

linux禁止root用戶直接登錄sshd并修改默認端口

轉載鏈接&#xff1a;http://jingyan.baidu.com/article/a681b0de3a657c3b184346d9.html linux最高權限用戶root&#xff0c;默認可以直接登錄sshd。為了提高服務器的安全度&#xff0c;需要對它進行禁止&#xff0c;使得攻擊者無法通過暴力破解來獲取root權限。 1,新建一個用…

面試官問:能否模擬實現JS的bind方法(高頻考點)

可以點擊上方的話題JS基礎系列&#xff0c;查看往期文章寫于2018年11月21日&#xff0c;發布在掘金閱讀量1.3w前言這是面試官問系列的第二篇&#xff0c;旨在幫助讀者提升JS基礎知識&#xff0c;包含new、call、apply、this、繼承相關知識。面試官問系列文章如下&#xff1a;感…

推薦一個ASP.NET的資源網站

推薦一個ASP.NET的資源網站&#xff1a;ASP.NET屋-專業的ASP.NET學習,ASP.NET源碼,ASP.NET演示,MVC,Silverlight,JQuery,EXTJS,軟件設計網站 http://www.aspx58.com.cn/ 轉載于:https://www.cnblogs.com/yuyichen/archive/2009/11/26/1611682.html

連續投影算法_中航國畫榮獲“2020 IAV國際視聽嘉年華” 大屏幕投影顯示行業三大獎項!...

近日&#xff0c;“2020IAV國際視聽嘉年華”在深圳灣創新生態園隆重舉行&#xff0c;航空工業上電下屬子公司中航國畫作為2020年迪拜世博會中國館官方合作伙伴應邀參加此次高峰論壇&#xff0c;并在展會期間憑借4K系列雙色激光工程投影機、LP160UL系列超高亮度雙色激光工程投影…

Linux 系統備份恢復工具 SYSTEM-RESCUE-CD 的使用

測試系統&#xff1a;linux-debian 備份系統 1、插入dd有systemrescuecd-x86-4.0.1.iso的系統備份恢復U盤&#xff1b; 2、開機按DEL進入BIOS&#xff0c;設置BOOT為USB-HDD啟動。Save&Exit&#xff1b; 3、進入備份恢復系統界面&#xff1a;----------------------------…

CMDB功能分析與實現方案

CMDB功能分析與實現方案 CMDB系統的主要功能 1.用戶管理,記錄測試,開發,運維人員的用戶表 2.業務線管理,記錄業務的詳情 3.項目管理,指定此項目屬于那一條業務線 4.應用管理,指定此應用的開發人員 5.主機管理,記錄主機管理員,連接的網絡設備,存儲,云主機,物理主機等信息 6.主機…

感冒

看好這個網頁&#xff0c;你的感冒就好了轉載于:https://www.cnblogs.com/baoguo/archive/2009/11/27/1612308.html

python numpy矩陣索引_Numpy中的矩陣索引

索引后查看形狀&#xff1a;In [295]: Anp.matrix([1,2,3])In [296]: A.shapeOut[296]: (1, 3)In [297]: A[0]Out[297]: matrix([[1, 2, 3]])In [298]: A[0].shapeOut[298]: (1, 3)這種行為的關鍵是np.matrix始終是2d&#xff0c;所以即使選擇一行(A[0,:])&#xff0c;結果仍然…

他的前端焦慮:30歲以后的前端路怎么走? 你想過嗎~

馬云曾說&#xff0c;員工的離職原因很多&#xff0c;唯兩點最真實&#xff1a;一是錢&#xff0c;沒給到位&#xff1b;二是心&#xff0c;委屈了。當時間來到了年末&#xff0c;離職、跳槽、年終獎又成了年終熱詞&#xff0c;而此時辭職好似成為了一場勇敢者的游戲&#xff0…

不可忽略的apache 的 Keep Alive

轉載鏈接&#xff1a;http://hi.baidu.com/jx_iben/item/d5fe91feed74495ec9f337f1 在網頁開發過程中&#xff0c;Keep-Alive是HTTP協議中非常重要的一個屬性。大家知道HTTP構建在TCP之上。在HTTP早期實現中&#xff0c;每個HTTP請求都要打開一個socket連接。這種做效率很低&am…

碼云 Gitee 新增倉庫訪問之 IP 白名單功能

碼云企業版上線 IP 白名單功能&#xff0c;該功能主要用于企業禁止非指定 IP 訪問代碼倉庫。如下圖所示&#xff1a;使用方法&#xff1a;進入企業控制面板 -> 管理 -> 安全設置添加允許訪問 Git 倉庫的 IP 地址啟用安全選項&#xff1a;只允許在信任范圍內推拉代碼其他關…

oracle 實時查詢最耗CPU資源的SQL語句

1. 先通過top命令查看產用資源較多的spid號 2.查詢當前耗時的會話ID&#xff0c;用戶名&#xff0c;sqlID等&#xff1a;select sid,serial#,machine,username,program,sql_hash_value,sql_id, to_char(logon_time,yyyy/mm/dd hh24:mi:ss) as login_time from v$sessionw…