百度前端面試經歷


今天面了百度的前端實習職位。一面。時間大概是50分鍾。面試官是位很帥氣的小伙子,非常友好的一個人。進門的時候他讓我等一會,我瞄了一眼他的電腦屏幕,發現他在coding……

9點50開始的面試。

面試官:自我介紹一下。

我:blablabla。

面試官:javascript的類型轉換(比如"2"*1, "a"*1)。

我:javascript會調用valueOf來轉換為一個基本數據類型,在這種情況下,如果javascript不能通過valueOf轉成一個number,會嘗試調用toString,然后再轉。實在無法轉就只能NaN了。

面試官:說說類的創建、繼承和閉包。

我:new一個Function,繼承通過prototype。超類和子類可以通過子類的prototype=new 超類(),然后把prototype的constructor指回子類。閉包是一個變量作用域的問題(這里我也不是特別清楚,隨便說了些)。

面試官:說說get和post請求的區別。

我:1.參數形式不同;2.發送數據大小限制不同;3.在后台轉碼時不同,post可以簡單地修改編碼方式來避免亂碼,get不可以。

面試官:Get請求最大能多大。

我:幾K吧,2K?

面試官:你猜的?

我:。。。嗯。

面試官:說說事件綁定。

我:W3C是addEventListener,IE是attachEvent。

面試官:這兩種事件綁定有什么不同。

我:。。。。(真心不知道有什么不同,亂說一氣,難道是綁定事件執行的先后順序不同?)。

面試官:這兩種綁定還是有很大差別的。

我:。。。。是的是的,之前沒有了解過。

面試官:說說事件冒泡的機制。

我:blablabla。

面試官:如果上層元素想知道到底是從哪個元素起的泡,怎么搞?

我:Event的target屬性吧。

面試官:不是,再想想。

我:真心不會。。。(面試官也沒告訴我答案,整個面試過程中感覺這位面試官側重於指引你自己去找尋答案,不會告訴你答案的)

面試官:做一個圖片輪播的腳本。

我:blablabla(總之就是通過父元素設置overflow為hidden,position為relative,然后幾個圖片列表修改他的left值。因為之前我寫過一個,所以我還說道了如何實現動畫序列,比如點擊一次向左,一次向右,再來一次向左,動畫會依次執行。)

面試官:圖片加載比較慢,你這個輪播組件怎么解決。

我:new一個Image對象,然后注冊onload事件和src屬性,都onload完畢了再顯示,此前顯示一個占位符。

面試官:如果圖片很多,有兩萬個,怎么辦。

我:按需加載,用多少加載多少(然后講了我的實現思路)。

面試官:但是用戶瀏覽了很多張圖片會越來越卡。

我:把之前看過的圖片從dom里刪掉,來釋放內存,但是要是用戶回頭又看之前看過的就比較麻煩了,不曉得這個圖片該往哪里插入了。

面試官:是的,這道題我不告訴你正確答案,你可以好好想想(面試結束后面試官讓我看了百度圖片搜索的例子)。

我:好的。

面試官:你后台用哪個語言最多?

我:java。

面試官:Why java?

我:好用。而且我發現其實大運算時跟C++的效率也差不多。

面試官:還是要比C低一些的。

我:嗯。

面試官:用java寫網站還是客戶端?

我:網站。

面試官:用框架嗎?

我:看需求,需求簡單就用servlet可以了。

面試官:說說servlet的生命周期。

我:blablabla。

面試官:前台怎么寫。

我:。。。JSP<%%>不就行了。

面試官:我知道。我問還有其他方案嗎?

我:我們現在用模板引擎,比如velocity。

面試官:講講velocity怎么寫。

我:blablabla。

面試官:和JSP比,優勢如何?

我:速度快,寫起來簡單,而且好看。

面試官:應該不會比JSP快啊。

我:(這個問題我們爭論了好久,面試官是沒有用過velocity的)。

面試官:velocity可以自定義標簽嗎?

我:可以自定義指令,每個指令其實對應的就是一個java類。自定義指令要繼承Directive類。

(然后問了些MVC,此處不表)

面試官:(因為我說道這一年過來都在寫后端,針對spring做了一層淺封裝)說說你的封裝里DAO怎么實現的。

我:泛型+模板設計模式。緩存是裝飾器模式搞得,裝飾的是不帶緩存的類。

面試官:那表的結構已經事先定好了嗎?

我:對的,通過反射獲取類屬性,然后轉換為sql,比如loginTime轉成login_time,類名UserData轉成user_data。這個要事先商量好才可以。不遵守約定就沒法搞了。

面試官:緩存用什么實現的。

我:Ehcache。

面試官:和memcache差不多嗎?

我:沒錯。

面試官:更新策略是什么。

我:LRU。然后get做緩存,update和delete都直接刪除對象。

面試官:用什么做key?

我:id。

面試官:說說緩存怎么避免並發下臟讀等不一致問題。

我:我的類都是單例的(我傻逼了,單例和並發有關系嗎?面試官后來也糾正了我這個錯誤)。讀是沒有問題的,寫的話我沒有做處理,感覺ehcache自己內部做了處理吧,比如代碼同步,或者用concurrenct包下的類。

面試官:。。。。(這道題我沒明白他要問什么,他也沒明白我在說什么。。。好混亂)不糾結這個問題了。數據庫連接池怎么實現的。

我:直接用的DBCP。

面試官:我那時都是自己寫的。

我:。。。(心中默念:牛逼)。

面試官:好的,有什么問題想問我的。

我:百度是彈性工作制嗎?Web前端部門可以接觸到其他技術嗎?

面試官:彈性工作制,我們一般都是十點鍾來上班(笑)。Web前端部門以寫JS為主,會接觸到Controller的編寫,不過我們是用php的。也會接觸到服務器的配置和web工程的部署。不過大部分時間都在寫JS上。

然后我們就互道Goodbye了。

我的處女面,就這樣獻出去了。

文章來源:fantasticinblur.iteye.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM