轉眼人到中年:前端老程式設計師無法忘懷的一次百度電話面試

程式猿小卡發表於2018-01-26

等待,山雨欲來

2010年9月22日,中秋,記得那天下著零星的小雨。大部分同學都已回了家,深秋的校園顯得格外空曠寂寥。平時車來人往的校道,也只剩三三兩兩的行人低著頭走著。

匆匆忙忙吃完早餐,一個人揹著書包來到了教學樓,找了僻靜的角落坐下。看看手機,8:45左右,離電話面試還有大概15分鐘。心裡有些緊張,畢竟是大廠的面試,要求肯定很嚴格,不知道待會會問什麼問題。內心突然有些懊惱,應該提前多做些功課的。

如期而至的電話

時間一分一秒地流逝,心跳越來越快。9點整,上海的電話如期打來。雙方確認了身份後,連自我介紹都不用,直接就進入了技術面試環節。有點出乎意料,在我彼時的設想裡,第一個環節應該是自我介紹才對。

沒有太多的時間去詫異,電話那頭,面試題一個接一個地拋了過來。我把耳機聽筒緊緊地貼著耳朵,生怕聽不清面試的題目,或者錯過關鍵的資訊。其時,腦子飛快地轉著,想著如何回答面試官的題目,以及怎麼更有條理地組織我的回答。

“JS是如何實現繼承的?”

“知不知道什麼是跨域?什麼情況下會出現跨域?有哪些解決方案?”

“說說你對標籤語義化的瞭解。”

。。。

腦子裡一直嗡嗡響,也不知道過了多長時間,面試官突然安靜了下來。頓了大約有10秒,那邊說:“技術的問題也問得差不多了,就先到這裡。你這邊有沒有什麼問題想問的?”

我如釋重負,趕緊喘了口氣,然後問了幾個我之前已經準備好的問題,包括面試部門的工作,員工培訓機制,學習建議等,面試官也一一解答。

也許就要結束了

面試終於要結束了,一直緊繃著的神經開始鬆弛下來,人反而緊張了起來。畢竟,後面還有生死未卜的兩週在等待著我,而未知總是讓人感到恐懼。

接下來,就是我最想聽到的那句收尾的話了。

面試官:“那麼,面試就先到這裡,今天是週末,一個多小時的面試,辛苦你啦。面試結果會在兩週之內反饋到你這邊。”

週末,還是中秋,仔細想來,也是為了遷就我的時間,面試官才不得不在這麼特殊的時間到公司加班。而且面試過程中,面試官挺nice的,並不是預想中高高在上冷冰冰的態度。

面試官的“辛苦你啦”讓我有點小內疚,趕緊回道:“挺不好意思的,因為我這邊時間的原因,辛苦您週末過來公司加班。中秋節快樂。”

具體怎麼說的記不清了,只記得當時態度很真誠,並不是因為客套。

面試官聽到我的回答後,明顯楞了一下,似乎有些意外。同樣祝我節日快樂後,電話那頭安靜了一會,只有偶爾輕輕的鍵盤敲擊聲。

當幸福來敲門

感覺過了好長時間,其實也可能只有十來秒。聽筒裡再次傳來面試官的聲音,不知道是不是心理作用,感覺面試官的語調跟之前有些不同。

“這樣,我提前把面試結果告訴你,你一面通過了。在你之前也面了好多人,到目前為止,你是回答得最好的。二面具體時間稍後通知。加油哦,好好準備下一輪面試。”

幸福來得太突然,感覺握著電話的手都在微微顫抖。

“非常感謝,我一定好好準備。”

直到現在,我還不知道為什麼面試官突然決定提前告訴我面試結果。也許,陌生面試者的一句“中秋節快樂”,觸動了在他鄉拼搏的年輕遊子的心。

一切無從求證,記憶也終將隨時間淡去,在那個下著濛濛細雨的清晨。

技術面的問題

一個多小時的面試,問了很多問題,事後稍事整理記錄了下來,主要是圍繞JavaScript展開。

JS部分:

  1. JS是如何實現繼承的?
  2. object的prototype是什麼?(接上一個問題)
  3. JS如何實現資料以及功能的封裝。(即類是如何實現的)
  4. 如果一個標籤裡面包含了10000個image,如何有效地對這10000個image實現事件繫結,比如說click事件。(考察事件冒泡機制)
  5. 假設現在有物件A、B,A物件繫結了S事件,如何對B物件也繫結S事件?(其實不清楚)
  6. 如何實現跨域請求?你知道的有多少種方法?各有什麼優缺點?
  7. 當使用隱藏框架實現跨域請求時,如果框架頁跟當前頁不屬於同個父域,是否可以實現跨域?
  8. 如何實現私有變數?說出一種方法即可。
  9. 函式閉包使用得多嗎?什麼情況下需要使用函式閉包?
  10. 當某個事件發生時,如果獲得事件發生的物件。(ff和ie不同)
  11. 當繫結事件時,this指標指向的是?
  12. 當為document繫結事件時,this指標指向的是?
  13. 傳送ajax請求有多少個步驟?如何判定傳送成功?(readyState和onreadystatechange)
  14. 表示請求成功返回的狀態碼是多少?你還知道哪些狀態碼?分別表示什麼意思?

jQuery部分:

  1. jQuery裡如何繫結事件?有多少種方式?
  2. jQuery繫結事件時,this指標指向的是?(dom物件還是jQuery物件)
  3. 對於頁面中暫時不存在的物件,如果進行事件繫結?
  4. 為什麼選用jQuery框架(言下之意就是還有哪些其他的框架,各有什麼優缺點,即你對比之後選擇的原因)
  5. 有沒有考慮過jQuery UI?如何對jQuery UI的樣式進行定製?
  6. 有沒有自己寫作jQuery外掛(即如何寫jQuery外掛)

html+CSS:

  1. 用html+CSS實現這樣的佈局效果,左欄固定寬度,右欄寬度自適應並填滿剩下空間。
  2. 說說<strong>標籤和<b>標籤的區別,如果讓你選擇,你會選擇使用哪個?
  3. 說說你對對html標籤語義化的理解。

後記:關於二面

大約一週後,接到了二面的電話。面試的結果有點出乎意料,那種驚訝,夾雜著莫名其妙的情緒,至今還無法忘懷。

故事有點長,未完待續。

相關文章