摘要:面試官說那我問你一個哲學的問題,為什么有數據結構這種東西哇,這是啥,巴拉巴拉扯了一通,大致就是物以類聚,人以群分,先人積累下來的經驗,這些讓我們更方便處理數據啥的。
前因,沒有比摸魚有趣的事了
距離自己被外派(俗稱外包)出去,已經過了快五個月,工作的話,很閑。人啊,一定保持好的習慣,懶惰是會上癮,日常摸魚,懷疑人生,我是誰,我在哪,我要干什么。
中午吃飯的時候,收到了boss直聘的一條消息,XX發來一個信息,是一個前端職位,問我是否感興趣,講道理,我還是很詫異的,一是我BOSS直聘上的簡歷很久沒更新了,二是我的在線簡歷寫的一塌糊涂,連項目介紹都沒有,我猜應該是HR手點錯了,發錯消息了。思考了一會,想著試試吧,就點了感興趣,一天過去了,我看沒回,emmm,果然點錯了。結果后來又聯系我,希望我把簡歷發給她,我一想,還有戲,晚上的時候草草寫了一份簡歷遞了過去。然后又一天過去了,接著又過去了一天,我想,差不多涼了。誰知道后來又聯系了我,問我下周有沒有時間去面試,我靠,那天可是星期五啊,我啥都木有準備,面試不是直接翻船,而且下周這邊的項目還要上線,問星期五可以不?兩天過去了,我想,差不多涼了吧,后面又回了了,說可以,郵件已經發到我郵箱了。我掐指一算,還有四天,趕緊將自己的switch、3DSLL收了起來,開始準備面試,然后自己給自己出面試題。
過程自己給自己出面試題是個艱難的過程,就像自己和自己下象棋一樣。花了好幾天做了個總結,將自己記錄過的難點和自己想理解的東西做了個總結。除了排序的話,其他都是自己寫的,整個過程也碰到些麻煩,改了很多次。我把這些放在了GitHub上,我用了我老婆的照片,各位別介意。這些問題,有的我給了詳細的解題過程,喜歡的話點個star吧。后期遇到一些有趣的東西我也會在上面更新的。
我會在最后分析一些問題的解題過程。面試過程
講道理,XX的大樓,感覺還不錯。來的有點早,在下面找了個奶茶店,一邊瘋狂喝水,一遍思考人生。然后到點了,就上去了,面試是在8樓,講道理,還是有點緊張的,畢竟一年沒準備過面試了,心里還是很玄的。進去以后,和其他面試的小伙伴分配到一個房間了,過了一會,有人拿了面試題過來,給了隔壁的小伙伴。。。我偷偷瞄了一眼,是 爪哇。過了一會又過來了,拿了兩份面試題,一份給了我,一份給了另一個小伙伴,都是前端的。面試題總共三頁還是四頁,都是基礎,拿起筆 pia pia 就寫了起來,過了一會就交了,剛交就想起來自己一道題做錯了,感覺很難受。。。小插曲:旁邊面 爪哇 的小伙伴用手機瘋狂百度,筆試過程沒人管的,我是老實人,不干這事
一面面試官感覺人不錯,拿著我的面試題和簡歷到外面去了,我趕緊和他說我一道題做錯了,并說了正確答案。面試官表示他還沒看面試題,然后過了一遍,不好意思,我好像全做對了。。。剛開始就隨便問了問this,嚴格模式和非嚴格模式下執行函數的this。
干貨,整個過程都是用筆寫的
我提了,說面試題目太簡單了(現在想想的確這樣說不好),然后面試官就說,那我給你出個不簡單的,flatten的實現,我一想,這個我好像寫過,拿起筆,啪啪啪就寫起來了。過
問了我知不知道最近網上的快排事件,我說知道,就讓我寫了,我用的是最常用的3while寫法,寫到一半他就沒讓我寫了,我寫的和書上的一毛一樣。。。然后又讓我說出歸并排序的原理,這個沒有讓我寫了,我就直接說了,就是切成兩個數組,巴拉巴拉,具體自己上網查詢。過
知道immer.js嗎,Mobx作者弄的一個不可變數據,知道的不多,就隨便說了說,然后又讓我說明了immutable.js的數據更新原理,和react的tree diff有點像,巴拉巴拉將自己知道說了。過
KOA中間件原理,臥槽,這個我讀過源碼,還分析過,就是通過compose組合中間件,巴拉巴拉。過
獲取所有文件和文件夾。這個就是個樹結構,因為我記不清fs APi的使用了,就問能不能用dom樹去代替,面試官說可以,這個我寫過。。。巴拉巴拉,面試官說,能不能不用遞歸,用while+廣度+深度還是啥,我靠,我懵了,雖然我知道廣度優先,深度優先,有點緊張,抓著筆思考了會人生,面試官看我這樣,就向我解釋了下。答案放在GitHub上了。zi
面試官說:“那我問你一個哲學的問題,為什么有數據結構這種東西?”哇,這是啥,巴拉巴拉扯了一通,大致就是物以類聚,人以群分,先人積累下來的經驗,這些讓我們更方便處理數據啥的。尬
對函數式編程了解多少,對算法了解多少。我函數式懂的不多,函數式編程還是比較難的,什么y組合子,聽著就暈。算法就隨便說了些,動態規劃樹啊啥的。面試官問我是怎樣學習算法的,我就說自己平時會在知乎看些相關的文章。然后面試官就說想我這樣零散的看并不能獲得太大提高,應該有組織的去看。關于函數式,他向我推薦了Haskell,說我只需要看看基本就可以了,然后再去看redux就會好很多。懵
又問了很多,然后問我想了解什么,其實我知道XX的技術棧的,所以就說了些,表示有很大的興趣。
其他問題就不一一列舉了,他還問我看了關于node的什么書籍,我張口差點說了《九淺一深nodejs》。。。我已經記不清楚是誰帶的頭了
總結:面試官和我說,人的知識結構是T字型的,底下的都是基礎知識,只有基礎知識弄好才能學習更廣的知識,然后說了我基礎不太好。。。我一想,完蛋,這下真涼了,我的認知里,基礎是最重要的。
二面一面面試官把我帶回去了,讓我等一會,過了一會,二面面試官來了,繼續和面試官一起出去。二面問的問題就是舒服多了。
因為我在簡歷中寫了用了react和vue,就問了我兩者有什么不同。我就說了更新策略啊,react通過setState手動批量更新,vue是Object.defineProperty去監聽屬性變化。然后還有什么slot和this.props.children這樣。
關于redux的一些問題,熟悉redux一般不會有太大問題。
就是一些雜碎的問題,為啥想離職,關于離職,多從自身找問題,別說公司咋的咋的,很不好。
又問了些,然后問我想知道什么,我balala說了一些,然后問面試是不是結束了,然后他說是,結果下個星期出來,我一聽,這下真涼了,好歹有個三面人事面吧。。。
最后面試官把我帶了回去,也沒說讓我走,等了半個小時,我想大概掛了,就找了別的員工問了下是不是自己可以走了,然后問了人事,說把我忘了。。。以為二面面試官把我送走了,準備打電話和我通知的。然后人事說讓我放心,給了口頭offer,正式offer下個星期給我,然后就是和說要準備什么,讓我看郵件。
結局還算滿意吧,表現的的確不太好,但也算把自己學的東西說出來了。結局也是好的,順利拿到offer。
解析,補充一些小東西,具體看源碼
扁平化數組,flatten已經進入規范,在MDN上的Array可以查到該方法,記住一點,能用reduce的都用reduce,數組運算,你的下次運算結果需要用到上次運算的結果,都可以用reduce。
const flatten = (arr) => arr.reduce((a, b) => { if (Array.isArray(b)) { return a.concat(flatten(b)); // 該項是數組,連接 遞歸調用的結果,否則直接連接 } return a.concat(b); }, []);
深克隆
需要注意的坑就是typeof null、typeof RegExp("test")、typeof Date()、typeof Boolean(true)、typeof String("t")、typeof Number(1)為object,數組和對象也要區分開,具體看源碼。
求一個頁面多少dom節點
原理和flatten一樣,都是遞歸,看源碼
求dom樹結構
這個個人覺得挺重要的,也很有趣,看源碼,也是遞歸
求一顆dom樹的最大深度
原理是遞歸一次,就說明向下走了一層,記錄最大值,比較,結束后返回
const getDomDepth = (node) => { let max = 1; void function fn(d, m) { m++; Array.from(d.children).forEach(n => { if (n.children.length) { fn(n, m); } else { if (max < m) max = m; } }) }(node, 1); return max; }
看源碼->看源碼->看源碼,幫忙點star == 遇到不理解的在issues里面提出來,倒數第二題我還沒寫,因為當晚去看react的東西了,今天又去了前端千人峰會(一個人)。晚點補充。
這些東西也不算簡單,如果感到疑惑也沒什么,分析出來只是希望能幫助大家理解一些東西,與君共勉,加油~
補充:明天好像是520,可惜我是只單身狗。。。希望大家玩的開心吧
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95097.html
摘要:最近面試一家有直播業務的公司,明顯感覺到對多線程的理解有一些要求。第一輪面試大概就面了分鐘左右,一輪下來口干舌燥。下面對面試題做了下簡單分類,分享給大家。 最近面試一家有直播業務的公司,明顯感覺到對多線程的理解有一些要求。第一輪面試大概就面了 70 分鐘左右,一輪下來口干舌燥。 下面對面試題做了下簡單分類,分享給大家。 多線程 有什么方法可以監控線程的狀態 synchronized ...
摘要:浪費青春話不多說,之前投的簡歷,有家公司忽然聯系說,想和我約個時間點電話面試。不了解自己的水平,永遠都會止步于眼前的安逸。電話面試流程面試官簡單介紹一下來意,然后先了解工作經驗,再問技術問題。 最近換了個項目,現階段處于項目啟動階段,沒有開發任務,天天悠悠哉哉地都快把自己的本職忘了。浪費青春!!!話不多說,之前投的簡歷,有家公司HR忽然聯系說,想和我約個時間點電話面試。雖然這段時間一直...
摘要:浪費青春話不多說,之前投的簡歷,有家公司忽然聯系說,想和我約個時間點電話面試。不了解自己的水平,永遠都會止步于眼前的安逸。電話面試流程面試官簡單介紹一下來意,然后先了解工作經驗,再問技術問題。 最近換了個項目,現階段處于項目啟動階段,沒有開發任務,天天悠悠哉哉地都快把自己的本職忘了。浪費青春!!!話不多說,之前投的簡歷,有家公司HR忽然聯系說,想和我約個時間點電話面試。雖然這段時間一直...
摘要:獲取的對象范圍方法獲取的是最終應用在元素上的所有屬性對象即使沒有代碼,也會把默認的祖宗八代都顯示出來而只能獲取元素屬性中的樣式。因此對于一個光禿禿的元素,方法返回對象中屬性值如果有就是據我測試不同環境結果可能有差異而就是。 花了很長時間整理的前端面試資源,喜歡請大家不要吝嗇star~ 別只收藏,點個贊,點個star再走哈~ 持續更新中……,可以關注下github 項目地址 https:...
閱讀 832·2023-04-26 00:13
閱讀 2823·2021-11-23 10:08
閱讀 2450·2021-09-01 10:41
閱讀 2118·2021-08-27 16:25
閱讀 4198·2021-07-30 15:14
閱讀 2365·2019-08-30 15:54
閱讀 864·2019-08-29 16:22
閱讀 2741·2019-08-26 12:13