爭取來的酷狗前端面試 共勉之

威廉炒雞帥發表於2019-03-08


emmm...說說事情的情況吧。我是18年畢業的,由於學校大四沒課,大三暑假就出來找工作做前端開發了。也在第一家公司呆了一年大半,準備換個工作環境了。這就開始了我的面試之旅,投了也挺多簡歷的吧,總共就面了幾家,感覺機會真的好少,每次都來之不易。


說到酷狗,其實簡歷也是有投遞的,而且投了好幾封了,但就是沒有下文。無意間看到了其有專場招聘!!!重點來啦!莫名其妙內心就萌生了一種想法,我不如直接去試試,臉皮厚一點,說不定真的給面試了,就這樣,當天就去了酷狗的大本營...


哇。去到的時候,在門口徘徊,猶豫,饒了一繞。最後鼓起勇氣走了進去,諮詢了一下情況,說有邀約名單,眼看一大堆人的名字,就是沒我,有點失落。前臺hr姐姐也問我是不是沒邀約,說了沒關係,並且問我拿了份簡歷,叫我坐著等一會。額,等了大概有1小時左右吧,我看到的在我前面的有2個,等他們面完了,早上沒人了,面試官就決定面我,喊了我的名字~


面試開始了!

這時真的很是激動啊,首先在這裡感謝面試官給我的寶貴機會吧。


額,怎麼說,由於面試前有聊一會天,面試官問我是怎麼知道當天有招聘活動的。我說公眾號看到。問了一下我的情況,是不是還在職啊,為什麼想出來等等。可能聊了一會天,氣氛很和諧,也沒找我自我介紹就開始面試了哈~

1.首先是看了看我的簡歷,看了下上面的專案,問我哪一個專案比較有意思的講講。
  • 我就選擇了一個h5sdk的專案做了具體的講解吧,①這裡就談到了一些iframe的父子頁面跨域通訊,②前端和ios客戶端通過postMessage的互動原理,還有一些互動邏輯的處理。③也談到了ajax,get和post的區別,還有一些對於敏感資訊的轉碼(密碼)。④還問了我這個專案的使用者量有多少、使用情況怎麼樣的等等吧。


2.可能上面有聊到ajax的http請求,馬上就進入了http環節。問了我一些問題我具體忘了,是關於http1.1的特性的。由於我不太會,我就引導面試官問我會的內容了。

  • 我就說我不太清楚。但是我知道http的請求流程,每個層做了什麼,怎麼才算完成一個http請求。然後就開始說了,應用層傳送http請求,到傳輸層tcp,網路層ip,鏈路層...


3.等我回答完http,就問了我關於https的知識了。問我https和http的區別,具體講述一下https。

  • 我就說多了個ssl層。ssl層是通過客戶端傳送ssl版本和加密元件。伺服器接受了之後,也會傳送一個ssl版本,挑選加密元件內容並且會傳送一個包含公開金鑰的證書...客戶端根據公開金鑰加密一個隨機密碼串(用於形成對稱加密)並且會傳送一個報文,提示伺服器接下來的通訊會用這個密碼串加密。伺服器接收到再用私鑰解密...

這時,可能提及到對稱加密,面試官問我對稱加密和非對稱加密是什麼,有什麼區別。

  • 對稱加密就是大家都有一把共同的金鑰來建立通訊。非對稱加密就是伺服器把自己的公鑰公佈出來,但是隻能用自己的私鑰才能進行解密。卻別就是非對稱加密每次都要做解密的演算法,對機器的消耗和時間都比對稱加密的大。

接著問怎麼處理這種情況。

  • 我就說兩者相結合。就像我剛才說的ssl的握手一樣,用非對稱加密傳輸一個兩者的金鑰,接下來就用這個金鑰進行通訊。

那你這樣怎麼保證傳輸的金鑰的安全呢,會不會被篡改呢。

  • 我就說這就要使用一個證書。用一個安全可靠的第三方來保證傳輸金鑰的安全,具體我也說了一下證書的由來...

接著問我https的耗時都比http長,怎麼避免這個問題,什麼時候用https...這個問到最後我就沒怎麼答出來了...


4.有問到http的快取,強快取和弱快取有什麼區別,他們的一些請求頭和響應頭是怎麼樣的,強快取命中的時候,請求回返回什麼樣的狀態碼。

  • emmm大概講述了一下吧。一些請求頭什麼的,因為怎麼讀我也不確定,怎麼拼只記得大概,就說了一下。也提到了ETag和Modified,優先順序是ETag。然後強快取是不傳送請求,協商快取需要傳送請求給伺服器,伺服器如果返回304,即不會帶實體內容...強快取命中的狀態碼是200。會有一個from memory cache 或者disk cache。

5.接著面試官手寫了一個for迴圈和setTimeout的考題給我,是考察關於閉包的,問我相關的輸出是什麼,我答了,並且把程式碼是怎麼執行的,也說道了setTimeout的非同步。然後問我怎麼達到他想要的效果(採用閉包,let,setTimeout的第三個引數...)。叫我講述一下閉包是什麼。


6.手寫了一個鏈式呼叫 Mask('jack').sleep(5).**()。大概是這樣的吧,問我每次函式結束後要返回什麼?

  • 這個我寫了一個虛擬碼吧。每一個函式都return this。並且我寫sleep的時候用的是while去做判斷。我當時的做法是沒考慮sleep是非同步的,所以面試官問我這個說不就阻塞了其他程式碼的執行嗎,我一時懵逼了。然後我說可以用promise...

7.一個非同步載入的元素,你需要獲取他並繫結事件,怎麼確定你一定能繫結到。知道事件繫結的原理嗎。

  • 額,這個我大概說了一下想法吧。後來想想,事件代理嗎!(瞎想的,大家不要信我)。這個回答得不是很好。事件繫結的原理也不清楚。

8.promise和setTimeout有什麼區別,他們怎麼執行,什麼是巨集任務什麼是微任務,執行順序又是怎麼樣的。

  • 說了挺多的吧這個。關於瀏覽器的事件迴圈。new Promise內的程式碼按順序正常執行,then的任務被分發到微任務。setTimeout的任務被放在巨集任務。然後整個事件迴圈就是先執行所有的script程式碼,再執行當前的微任務,再進行巨集任務的下一次事件迴圈...

9.講一下js的原型,原型鏈。講一下js的繼承方式。(基本是我答一種,他就問一種的有缺點和解決方案)

  • 這個說了很久啊。什麼每一個函式都有prototype的屬性。每一個例項的__proto__都會指向他的構造器(函式)的prototype,利用這個特性就能實現原型鏈繼承。(優缺點,怎麼處理)...就到了下一個繼承的方法...這裡不多說了,說太久了

10.問我對vue的生命週期鉤子瞭解嗎,用哪個用得最多,用來做什麼處理,為什麼要在這一步做這一種處理。

  • 說了常用的鉤子,然後說用得多的是created、mounted、destroied。一般會在created中做一些網路請求,mounted的時候對一些dom元素進行的操作。當一個元件destroied的時候要清一些定時器啊什麼的。

11.讓我講一下vue2.0的虛擬dom,還有vue怎麼實現陣列的資料驅動。(額,陣列的沒答上來,只答了vue內部另外封裝了一個方法去...)

  • 虛擬dom的話就是js構成的一個物件樹結構,當對一個dom做修改的時候,會現在虛擬dom中操作,用一個diff演算法做最小更新最後對映到dom上面...(由於vue只是使用,對原理掌握得不深,最近都在複習基礎,算是薄弱項吧)。最後面試官說我沒答到點子上,不過沒關係(哈哈,有點尷尬)

12.看到你這個播放器的專案,講述一下他的整體,有哪些功能,哪些介面。

  • 這個也是我寫在專案上的,就最近很火的一個vue開發音樂app的h5。

13.播放器的進度條怎麼實現的,講講你的思路。


14.播放器有做過歌詞嗎,是怎麼樣實現的。(額,這不會,沒答上來,因為後來沒繼續做下去了,跑去複習基礎,就吧播放功能和控制進度實現了,歌詞沒做了)


15.接下來問我有做過什麼動畫?
  • 我答css的tansition,animation,還有js動畫。
接著問有用過canvas做動畫嗎?
  • 我說有,用來做過幀動畫。然後問了我一些幀動畫的缺點是什麼。我就說需要大量圖片資源,要做預載入處理,響應時間長,不做的話可能播放的時候會出現閃屏,體驗不好。


16.svg有用過嗎,用來做了什麼,使用js控制的嗎。


17.如果一個使用者開啟了你的網頁發現打不開,你說說可能出現的情況,你想到的都可以說。
  • 伺服器沒響應啊,5字頭的報錯。或者404,頁面資源不存在。還有網路中斷啊


面試官:我基本上問完了,你有什麼問題問我的嗎。 

1.我問了公司的技術棧,主要開發的業務。 

2.還問了公司有沒有自己的框架,還有沒有使用jq這種比較老舊的技術。 

3.問了他公司用什麼做的動畫,他告訴我也是canvas做幀動畫,說效果不是很滿意,正想方案代替。


額,最記得面試官指點我的一句話就是,技術的深度決定技術的廣度,其實整個web的發展就是這樣,萬變不離其中,基礎只要紮實了,才能決定你的技術廣度,以不變應萬變~


最後面完了,面試官跟我說了一段話,讓我非常的有感觸吧,讓我感覺自己的努力複習還是有一點效果的,我還是有在進步的。

他說:你是沒有被邀請自己過來面試的,但是總體下來我覺得你挺不錯的。我會把情況向上面反饋,接下來可能會有複試。因為今天面試的人比較多,你留個聯絡方式,如果有複試會通知你過來複試的。

嗯,其實吧,很感謝這個面試官。謝謝他面試我,給了我機會,當然這機會也算是我自己爭取來的吧,還是非常感謝他面試我。面試這一場,學習到了很多,最深的感觸還是那句話:機會都是自己爭取來的,都是留給有準備的人的。


=-=哈哈,後來並沒有收到複試通知。雖然有點失落吧,但是我覺得能混這一次面試已經算是進步了,謀事在人,成事在天。這次的經歷感覺很寶貴,希望自己繼續努力前行,能實現自己的夢想吧~把這次面試經驗分享給大家,希望能鼓勵自己和大家,一起進步,共勉吧~加油



相關文章