<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          社招一年半前端面試記錄及思考(阿里、騰訊、百度 offer)

          共 6550字,需瀏覽 14分鐘

           ·

          2021-05-11 10:02

          作者YeeJone | https://juejin.cn/post/6957918287644590117

          在過(guò)去的一個(gè)月里,自己面試了多家公司的前端崗位,很幸運(yùn)的是拿到幾個(gè)不錯(cuò)的 offer,所以想通過(guò)這篇文章做個(gè)記錄與總結(jié),希望給打算求職的你一些參考。

          簡(jiǎn)單介紹

          19屆,本科,計(jì)算機(jī)相關(guān)專(zhuān)業(yè)。畢業(yè)后,一直在一家三線廠做前端開(kāi)發(fā)的工作...

          其實(shí)這次之所以想出來(lái)面試,一共有兩個(gè)原因:其一是,校招結(jié)束后就沒(méi)有面試的經(jīng)歷了,不知道自己目前在招聘市場(chǎng)的水平到底如何;其二是,自己想回南方發(fā)展。
          所以 2021 農(nóng)歷新春伊始,我就開(kāi)始復(fù)習(xí)面試相關(guān)的知識(shí),并著手準(zhǔn)備相關(guān)材料。面試的前期準(zhǔn)備大概花了半個(gè)月, 2 月 28 號(hào)投出了第一封簡(jiǎn)歷....

          對(duì)下一份工作的核心訴:大平臺(tái) + 有技術(shù)沉淀 + 「知名」前端團(tuán)隊(duì)
          所以一共投遞了 5 個(gè)職位:

          • 螞蟻金服體驗(yàn)技術(shù)部
          • 騰訊 AlloyTeam
          • 百度「愛(ài)速搭」團(tuán)隊(duì)
          • 頭條抖音支付
          • 滴滴

          面試結(jié)果:螞蟻、騰訊、百度、滴滴都通過(guò)了面試并拿到 offer ,抖音支付二面掛。

          面試經(jīng)歷

          百度

          一面

          1. webpack 中 chunkHash 與 contentHash 區(qū)別;
          2. 寫(xiě)過(guò) webpack 的 loader 和 plugin 么;
          3. webpack 處理 image 是用哪個(gè) loader,限制成 image 大小的是...;
          4. webpack 將 css 合并成一個(gè);
          5. webpack 的搖樹(shù)對(duì) commonjs 和 es6 module 都生效么,原理是;
          6. 實(shí)現(xiàn)一下「模版字符串」功能;
          7. 實(shí)現(xiàn)一下 Promise.all (Promise 不用寫(xiě));
          8. 怎么實(shí)現(xiàn)響應(yīng)式布局的;
          9. css flex 的各個(gè)屬性值;
          10. css 動(dòng)畫(huà) animation 各個(gè)時(shí)間值含義;
          11. css 如何實(shí)現(xiàn)讓一個(gè)元素旋轉(zhuǎn)并橫向移動(dòng),如果只用一個(gè) css 屬性;
          12. less 與 sass 區(qū)別,技術(shù)選型時(shí)如何取舍;
          13. ES6 symbol 如何使用以及使用場(chǎng)景;
          14. ES6 Proxy 如何使用以及使用場(chǎng)景,說(shuō)說(shuō) Reflect;
          15. generator 有什么應(yīng)用場(chǎng)景;
          16. async await 如何實(shí)現(xiàn)的;
          17. git reset 與 revert 區(qū)別,revert 多個(gè) mr 改如何處理;
          18. git 如何撤回 add 后的內(nèi)容;
          19. http2 與 http1.1 區(qū)別,了解 http3 么,說(shuō)說(shuō);
          20. tcp 與 udp 的區(qū)別;
          21. 還問(wèn)了簡(jiǎn)歷相關(guān)的一些問(wèn)題(例如:性能優(yōu)化、E2E 測(cè)試相關(guān)的);

          二面

          1. 介紹一下項(xiàng)目;
          2. 手寫(xiě)在 給定的 n 個(gè)數(shù)中隨機(jī)取出 m 個(gè)數(shù),要求等概率;
          3. 手寫(xiě)一下防抖節(jié)流函數(shù);
          4. 設(shè)計(jì)實(shí)現(xiàn)一個(gè)「星級(jí)評(píng)分」組件;
          5. 說(shuō)說(shuō) http 緩存;
          6. call、apply、bind 三者的區(qū)別,如何實(shí)現(xiàn) bind;

          ...其他一些記不住了,這一面很多手寫(xiě):)

          三面
          這一面沒(méi)有問(wèn)前端基礎(chǔ)支持,只是對(duì)簡(jiǎn)歷中的一些項(xiàng)目進(jìn)行了提問(wèn),還問(wèn)了前端的學(xué)習(xí)經(jīng)歷以及后續(xù)的職業(yè)規(guī)劃...
          這面通過(guò)后就是 HR 了,聊 offer ...

          螞蟻金服

          螞蟻金服的面試流程和其他公司有所不同,它的每一輪面試都是面試官單獨(dú)加你微信,再和你約面試時(shí)間的。
          在正式開(kāi)始一面之前,一面面試官給我發(fā)了兩道筆試題,讓我這規(guī)定時(shí)間內(nèi)完成后發(fā)給他,題目是:

          題目一: 請(qǐng)實(shí)現(xiàn) find 函數(shù),使下列的代碼調(diào)用正確。

          // 約定:
          // title數(shù)據(jù)類(lèi)型為String
          // userId為主鍵,數(shù)據(jù)類(lèi)型為Number
          var data = [
            {userId: 8,  title: 'title1'},
            {userId: 11, title: 'other'},
            {userId: 15, title: null},
            {userId: 19, title: 'title2'}
          ];
          var find = function(origin) {
            // your code are here...
          }
          // 查找 data 中,符合條件的數(shù)據(jù),并進(jìn)行排序
          var result = find(data).where({
            'title': /\d$/
          }).orderBy('userId''desc');

          console.log(result);// [{ userId: 19, title: 'title2'}, { userId: 8, title: 'title1' }]; 

          題目二: 使用 React 或 Vue 技術(shù)棧實(shí)現(xiàn)一個(gè)流水線組件。

          流水線組件.png

          基本數(shù)據(jù)結(jié)構(gòu)

          interface Pipeline{
            stages: Stage[];
          }

          interface Stage{
            title: string;
            jobs: Job[];
          }
            
          interface Job{
            name: string;
            status: 'success' | 'fail';
            time: number; //毫秒時(shí)間戳

          一面

          1. 介紹一下你自己,以及項(xiàng)目,簡(jiǎn)單說(shuō)一下你做了什么,有什么難點(diǎn)及亮點(diǎn);
          2. js 有哪些基本類(lèi)型,說(shuō)說(shuō) typeof 與 instanceof;
          3. 說(shuō)說(shuō) new 操作符;
          4. 什么是 event loop;
          5. Promise 的用法?了解 allSettled 方法么,怎么實(shí)現(xiàn)?
          6. 說(shuō)說(shuō)閉包;
          7. ES5 實(shí)現(xiàn)繼承的方法;
          8. 說(shuō)說(shuō)跨域;
          9. commonJS 與 ES6 模塊化區(qū)別;
          10. webpack 了解么?loader、plugin 分別是干嘛的?如何實(shí)現(xiàn)一個(gè) loader?
          11. webpack 如何優(yōu)化打包速度;
          12. 說(shuō)一下 css 盒模型,border-box 和 content-box 區(qū)別;
          13. 說(shuō)說(shuō) BFC;
          14. 移動(dòng)端響應(yīng)式布局怎么實(shí)現(xiàn)的;
          15. 說(shuō)一說(shuō) flex 布局,有了解 Grid 么;
          16. 有兼容 retina 屏幕的經(jīng)歷嗎?如何在移動(dòng)端實(shí)現(xiàn) 1 px 的線;
          17. 說(shuō)一下 react 組件的生命周期;
          18. react 組件如何做性能優(yōu)化,說(shuō)說(shuō) pureComponent;
          19. 調(diào)用 setState 之后發(fā)生了什么;
          20. 了解 fiber 么?解決了什么問(wèn)題?具體原理是;
          21. 有用過(guò) hooks 么?怎么看待 hooks?它的原理是;
          22. 了解過(guò) react 最新的一些動(dòng)態(tài)么?time slice 、suspense、server component 能說(shuō)說(shuō)么;
          23. 了解最近一些新技術(shù)么,webpack5 做了哪些新突破;
          24. 為什么 vite、snowpack 可以比 webpack 快那么多?具體原理是;
          25. 什么是 CSRF 攻擊,怎么預(yù)防;
          26. 為什么說(shuō)用 css 實(shí)現(xiàn)動(dòng)畫(huà)比 js 動(dòng)畫(huà)性能好;
          27. 什么是 合成層;
          28. http2 與 http1.1 區(qū)別;
          29. 說(shuō)一說(shuō) http 緩存;
          30. http 狀態(tài)碼;

          二面

          1. 自我介紹,介紹項(xiàng)目,問(wèn)項(xiàng)目中的一些問(wèn)題;
          2. 19 年畢業(yè)的,學(xué)校的知識(shí)沒(méi)忘吧.. 計(jì)算機(jī)網(wǎng)絡(luò)、編程語(yǔ)言、設(shè)計(jì)模式、數(shù)據(jù)結(jié)構(gòu)算法、編譯原理你對(duì)哪個(gè)比較熟悉???(我答得是計(jì)算機(jī)網(wǎng)絡(luò))
          3. 路由器和交換機(jī)的區(qū)別;??
          4. 實(shí)現(xiàn)斐波納切數(shù),遞歸和非遞歸的時(shí)間復(fù)雜度分別是多少;
            ...還有其他一些基礎(chǔ)問(wèn)題,沒(méi)記住:)

          三面+HR 面

          偏右面的我(ps:終于見(jiàn)到 偏右 大佬了??)

          這一面沒(méi)有問(wèn)前端基礎(chǔ)相關(guān)的問(wèn)題,問(wèn)了我項(xiàng)目中的一些技術(shù)細(xì)節(jié),方案設(shè)計(jì)上的問(wèn)題。偏右老師的問(wèn)題真的很有水平,直切要害,都是項(xiàng)目推進(jìn)過(guò)程中遇到的坎。還問(wèn)了一些后續(xù)規(guī)劃的問(wèn)題。

          關(guān)于 HR 面,之前看很多人說(shuō)阿里 HR 面比較難,而且會(huì)刷人。但就我的經(jīng)歷來(lái)看,就是一些比較常規(guī)的問(wèn)題,如:

          • 為什么選擇跳槽;
          • 如何應(yīng)對(duì)工作上的壓力;
          • 今后的職業(yè)規(guī)劃是;
          • 說(shuō)說(shuō) 優(yōu)缺點(diǎn);
          • 希望阿里給你什么;
            ...

          這些問(wèn)題可以先想想,然后如實(shí)回答即可~

          騰訊

          一面

          1. 手寫(xiě)大數(shù)相加方法;
          2. 實(shí)現(xiàn)一個(gè)方塊的拖拽;
          3. 問(wèn)了一些項(xiàng)目的問(wèn)題,以及相關(guān)技術(shù)細(xì)節(jié);
          4. 從一個(gè) URL 輸入到頁(yè)面渲染,經(jīng)歷了哪些過(guò)程,盡可能的詳細(xì);
          5. tcp 握手 回收過(guò)程,了解泛洪攻擊么;
          6. 說(shuō)說(shuō) event loop(并出了一道題,寫(xiě)輸出順序);
          7. SSR 怎么做的,怎么保證同構(gòu)?server 端的數(shù)據(jù)都 renderToSting 消費(fèi)了,為什么還要給到 client 端;
          8. js 的嚴(yán)格模式;
          9. 說(shuō)說(shuō) Iterator 的使用;
          10. 說(shuō)一說(shuō)快速排序的過(guò)程;
          11. node 如何捕捉錯(cuò)誤,內(nèi)存泄漏怎么排查;

          還有一些基礎(chǔ)題目...

          二面

          1. 依舊是項(xiàng)目問(wèn)題...
          2. 性能優(yōu)化怎么做的,怎么衡量收益的;
          3. 為什么要做 SSR;
          4. E2E 測(cè)試怎么做的,怎么保證測(cè)試覆蓋率和準(zhǔn)確性;
          5. 如何合理分配 node 服務(wù)資源;

          這一面對(duì)于項(xiàng)目里的技術(shù)細(xì)節(jié)問(wèn)的很深入,還問(wèn)了些計(jì)算機(jī)網(wǎng)絡(luò)、React相關(guān)的問(wèn)題...

          三面

          1. 項(xiàng)目...;
          2. hybrid 通信原理;
          3. 如何看待小程序,它的技術(shù)原理是;
          4. 設(shè)計(jì)一個(gè)協(xié)同文檔的技術(shù)流程;
          5. 離線包怎么做的,現(xiàn)在公司的 app 提供了哪些特殊能力;
          6. 質(zhì)量保障平臺(tái)如何做的,項(xiàng)目中單元測(cè)試怎么做的,為什么要有 E2E 測(cè)試;

          就記到這些問(wèn)題...??

          四面

          1. 希爾排序,堆排,快排;
          2. this 指向問(wèn)題,說(shuō)出輸出內(nèi)容;
          3. 如何設(shè)計(jì)一個(gè)組件庫(kù);
          4. 用過(guò) TypeScript 么,了解哪些新特性;
          5. 說(shuō)說(shuō) React Fiber...;
          6. 為什么 Fiber 雙向鏈表的結(jié)構(gòu)可以解決遞歸慢的問(wèn)題;
          7. 了解設(shè)計(jì)模式么,說(shuō)說(shuō)單例模式的優(yōu)缺點(diǎn);
          8. 職業(yè)規(guī)劃;
          9. 目前拿了哪些 offer ...;

          這一面 hr 約的時(shí)候和我說(shuō)是 GM 面,本以為會(huì)和其他公司一樣,主要考察技術(shù)視野和職業(yè)規(guī)劃... 但一上來(lái)問(wèn)我技術(shù)問(wèn)題著實(shí)沒(méi)想到....
          這面結(jié)束后就是 HR 面,兩個(gè) HR 同時(shí)面,感覺(jué)全程都是我瘋狂講故事??

          抖音和滴滴

          這兩家公司具體的經(jīng)歷我就不一一贅述,很多問(wèn)題和上面三家差不多... 就簡(jiǎn)單講講抖音考了那幾道筆試題:

          • 二維數(shù)組中的查找;
          • 從先序遍歷還原二叉樹(shù)
          • 手寫(xiě)一個(gè)版本比較函數(shù);
          • 實(shí)現(xiàn)一下 cache request(請(qǐng)求過(guò)的數(shù)據(jù)不再請(qǐng)求)

          如何準(zhǔn)備面試

          前端面試三個(gè)重要部分:簡(jiǎn)歷與項(xiàng)目前端基礎(chǔ)算法和手寫(xiě)代碼。一般情況下,只要三部分中的其中兩個(gè)很好的話,基本就能通過(guò)面試。所以下面我會(huì)根據(jù)自己情況,來(lái)和大家說(shuō)說(shuō)如何準(zhǔn)備這三部分內(nèi)容:

          簡(jiǎn)歷與項(xiàng)目

          由于平時(shí)自己也負(fù)責(zé)組內(nèi)進(jìn)行一些面試工作,作為面試官來(lái)說(shuō),簡(jiǎn)歷真的很重要!!它是面試官對(duì)你的第一印象,所以簡(jiǎn)歷的排版以及內(nèi)容質(zhì)量很關(guān)鍵。

          我們先從簡(jiǎn)歷的排版說(shuō)起,總結(jié)起來(lái)有以下幾點(diǎn):

          • 簡(jiǎn)歷的格式一定要用 PDF !!
          • 個(gè)人信息、聯(lián)系方式盡量的放在前面,簡(jiǎn)歷排版需緊湊,不要太松散;
          • 對(duì)于一些技術(shù)棧、關(guān)鍵詞需加粗強(qiáng)調(diào);
          • 簡(jiǎn)歷整體內(nèi)容盡量控制在兩頁(yè)以內(nèi),語(yǔ)句需精簡(jiǎn),不要啰嗦;

          如果說(shuō)簡(jiǎn)歷排版是外在美,那么簡(jiǎn)歷中的內(nèi)容則是更為重要的"內(nèi)在美"。一份好的簡(jiǎn)歷,是能夠清楚如實(shí)地表述自己當(dāng)前的背景和工作內(nèi)容,我們通常將簡(jiǎn)歷內(nèi)容分為四個(gè)部分:個(gè)人信息&教育背景工作經(jīng)歷項(xiàng)目介紹自身技能&自我評(píng)價(jià)

          個(gè)人信息&教育背景工作經(jīng)歷這兩部分按照自身真實(shí)情況寫(xiě)即可,切勿造假!! 可能很多人為了簡(jiǎn)歷能夠"華麗",會(huì)對(duì)教育背景&工作經(jīng)歷進(jìn)行虛構(gòu)和造假,這種操作的后果,就是在背景調(diào)查階段極有可能被發(fā)現(xiàn),從而導(dǎo)致你的 offer 被取消,情形嚴(yán)重者可能會(huì)被拉黑。

          項(xiàng)目介紹 和 自身技能&自我評(píng)價(jià) 這兩塊的內(nèi)容往往決定了面試結(jié)果的評(píng)級(jí)。我們先說(shuō)項(xiàng)目這部分。簡(jiǎn)歷排版、個(gè)人背景決定的是你是否能夠通過(guò)初篩,個(gè)人項(xiàng)目則是決定面試通過(guò)后定級(jí)的上限。在幫組內(nèi)面試相關(guān)候選人時(shí),通常會(huì)對(duì)項(xiàng)目這部分內(nèi)容重點(diǎn)關(guān)注,關(guān)注的內(nèi)容主要有兩個(gè):

          • 這個(gè)項(xiàng)目是否有亮點(diǎn),以及這個(gè)項(xiàng)目是否有落地產(chǎn)出;
          • 候選人的項(xiàng)目是否和公司的業(yè)務(wù)貼合,候選人有沒(méi)有除業(yè)務(wù)工作外的工程提效的價(jià)值和潛力;

          所以作為候選人,我們要盡量去羅列一些具有代表性的項(xiàng)目,這樣會(huì)提升面試官對(duì)自己的印象,而且一定要對(duì)寫(xiě)在簡(jiǎn)歷上的項(xiàng)目爛熟于心,面試前可以采取自問(wèn)自答的方式來(lái)進(jìn)行練習(xí)。很多候選人的項(xiàng)目部分會(huì)寫(xiě)很多業(yè)務(wù)相關(guān)的內(nèi)容,沒(méi)有真正拿的出手亮點(diǎn)項(xiàng)目,導(dǎo)致簡(jiǎn)歷平平無(wú)奇。

          我們?cè)谄綍r(shí)工作中要多去參與一些如:性能優(yōu)化、質(zhì)量保證、構(gòu)建優(yōu)化、運(yùn)營(yíng)賦能的技術(shù)項(xiàng)目,這些工作,不僅能提升你技術(shù)的廣度和深度,而且可以極大的豐富你簡(jiǎn)歷的內(nèi)容,讓你在面試中有更多籌碼。

          技能&榮譽(yù)&自我評(píng)價(jià) 只要清楚列出你的技能和榮譽(yù)即可,例如:有移動(dòng)端開(kāi)發(fā)經(jīng)驗(yàn)、微前端經(jīng)驗(yàn)、熟悉 linux、node、獲得了XXX獎(jiǎng)項(xiàng)等。對(duì)于「自我評(píng)價(jià)」這部分,我個(gè)人并不喜歡,因?yàn)檫@些內(nèi)容往往都是千篇一律,沒(méi)有什么有價(jià)值的信息。

          前端基礎(chǔ)

          前端基礎(chǔ)相關(guān)的面試題,很多 github 倉(cāng)庫(kù)都有收集,在面試之前我們當(dāng)然可以通過(guò)這些進(jìn)行查漏補(bǔ)缺,但關(guān)鍵還是需要平時(shí)積累而且要有深入的理解,以免面試的時(shí)候出現(xiàn)一往深處問(wèn)就不知道的情況...
          這里推薦幾個(gè)前端基礎(chǔ)相關(guān)的書(shū)籍和內(nèi)容:

          • 《JavaScript 高級(jí)程序設(shè)計(jì)》 (紅寶石書(shū))
          • ECMAScript 6 入門(mén)(阮一峰 ES6)
          • React 官方文檔
          • github.com/CavsZhouyou…
          • github.com/mqyqingfeng…

          算法和手寫(xiě)代碼

          對(duì)于「算法」,親身經(jīng)歷告訴你們,臨時(shí)抱佛腳是沒(méi)有用的...??
          一定要平時(shí)堅(jiān)持刷,保持“手感”!就我的前端面試情況來(lái)看,考察的算法并不會(huì)很冷門(mén)、很難,一般都是 easy、medium 難度的,所以可以先從簡(jiǎn)單的開(kāi)始刷,再慢慢過(guò)渡到 medium 和 hard 的,循序漸進(jìn)。、

          手寫(xiě)代碼比較常見(jiàn)的幾道題目:

          • 防抖節(jié)流;
          • 手寫(xiě) Promise 及相關(guān) api 實(shí)現(xiàn);
          • 實(shí)現(xiàn) bind、apply、call;
          • request cache;
          • 實(shí)現(xiàn)模版字符串;
          • es6 class 轉(zhuǎn)成 es5 ;
          • 實(shí)現(xiàn) Array flat 等相關(guān) API;
          • 實(shí)現(xiàn)一個(gè)版本比較函數(shù);...

          總結(jié)

          面試其實(shí)是一個(gè)自檢、自省的過(guò)程,期間會(huì)發(fā)現(xiàn)自己的優(yōu)點(diǎn)和不足。這次面試經(jīng)歷暴露了自己在算法及專(zhuān)項(xiàng)領(lǐng)域技術(shù)思考的欠缺...所以今后還要加強(qiáng)這方向的學(xué)習(xí)和鞏固,但同時(shí)拿到了三家"大廠"的 offer,也是對(duì)過(guò)去一年半的工作的一個(gè)肯定,說(shuō)明我是一名合格的螺絲釘 ??

          關(guān)于面試期間的心理狀況,面試的整個(gè)過(guò)程是很心累的,在這短短的一個(gè)月里,你會(huì)經(jīng)歷極度自信和極度失落的跨越,期間需要調(diào)整好自己的心態(tài),面試沒(méi)通過(guò)并不是你被全盤(pán)否認(rèn)了,只是你的工作經(jīng)歷并不是很契合他的職位需求,所以還是要保持信心和斗志。

          在經(jīng)歷過(guò)這幾場(chǎng)面試之后,一直在思考一個(gè)問(wèn)題:3-5 后你的核心競(jìng)爭(zhēng)力是什么?

          對(duì)于前端來(lái)說(shuō),在初入職場(chǎng)時(shí),可能由于學(xué)習(xí)投入的時(shí)間有差別,自己和其他人的水平存在一定差距,但這種差距隨著時(shí)間的推移會(huì)漸漸縮小,工作 3 年后,大多數(shù)人基本就能 cover 住業(yè)務(wù)問(wèn)題了,所以核心競(jìng)爭(zhēng)力并不是你寫(xiě)了xxx需求...,而是你是否有持續(xù)學(xué)習(xí)的能力以及在某個(gè)前端領(lǐng)域是否有自己的思考與沉淀。

          歡迎點(diǎn)贊收藏 ??:)

          瀏覽 69
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  夜夜躁狠狠躁日日躁 | 成人三级片二区 | 天天操天天日天天摸 | 少妇厨房偷情理伦 | 97青娱乐在线观看 |