新聞中心
今天面了百度的前端實(shí)習(xí)職位。一面。時(shí)間大概是50分鐘。面試官是位很帥氣的小伙子,非常友好的一個(gè)人。進(jìn)門(mén)的時(shí)候他讓我等一會(huì),我瞄了一眼他的電腦屏幕,發(fā)現(xiàn)他在coding……

創(chuàng)新互聯(lián)專(zhuān)業(yè)為企業(yè)提供姑蘇網(wǎng)站建設(shè)、姑蘇做網(wǎng)站、姑蘇網(wǎng)站設(shè)計(jì)、姑蘇網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、姑蘇企業(yè)網(wǎng)站模板建站服務(wù),十余年姑蘇做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
9點(diǎn)50開(kāi)始的面試。
面試官:自我介紹一下。
我:blablabla。
面試官:javascript的類(lèi)型轉(zhuǎn)換(比如"2"*1, "a"*1)。
我:javascript會(huì)調(diào)用valueOf來(lái)轉(zhuǎn)換為一個(gè)基本數(shù)據(jù)類(lèi)型,在這種情況下,如果javascript不能通過(guò)valueOf轉(zhuǎn)成一個(gè)number,會(huì)嘗試調(diào)用toString,然后再轉(zhuǎn)。實(shí)在無(wú)法轉(zhuǎn)就只能NaN了。
面試官:說(shuō)說(shuō)類(lèi)的創(chuàng)建、繼承和閉包。
我:new一個(gè)Function,繼承通過(guò)prototype。超類(lèi)和子類(lèi)可以通過(guò)子類(lèi)的prototype=new 超類(lèi)(),然后把prototype的constructor指回子類(lèi)。閉包是一個(gè)變量作用域的問(wèn)題(這里我也不是特別清楚,隨便說(shuō)了些)。
面試官:說(shuō)說(shuō)get和post請(qǐng)求的區(qū)別。
我:1.參數(shù)形式不同;2.發(fā)送數(shù)據(jù)大小限制不同;3.在后臺(tái)轉(zhuǎn)碼時(shí)不同,post可以簡(jiǎn)單地修改編碼方式來(lái)避免亂碼,get不可以。
面試官:Get請(qǐng)求最大能多大。
我:幾K吧,2K?
面試官:你猜的?
我:。嗯。
面試官:說(shuō)說(shuō)事件綁定。
我:W3C是addEventListener,IE是attachEvent。
面試官:這兩種事件綁定有什么不同。
我:。(真心不知道有什么不同,亂說(shuō)一氣,難道是綁定事件執(zhí)行的先后順序不同?)。
面試官:這兩種綁定還是有很大差別的。
我:。是的是的,之前沒(méi)有了解過(guò)。
面試官:說(shuō)說(shuō)事件冒泡的機(jī)制。
我:blablabla。
面試官:如果上層元素想知道到底是從哪個(gè)元素起的泡,怎么搞?
我:Event的target屬性吧。
面試官:不是,再想想。
我:真心不會(huì)。(面試官也沒(méi)告訴我答案,整個(gè)面試過(guò)程中感覺(jué)這位面試官側(cè)重于指引你自己去找尋答案,不會(huì)告訴你答案的)
面試官:做一個(gè)圖片輪播的腳本。
我:blablabla(總之就是通過(guò)父元素設(shè)置overflow為hidden,position為relative,然后幾個(gè)圖片列表修改他的left值。因?yàn)橹拔覍?xiě)過(guò)一個(gè),所以我還說(shuō)道了如何實(shí)現(xiàn)動(dòng)畫(huà)序列,比如點(diǎn)擊一次向左,一次向右,再來(lái)一次向左,動(dòng)畫(huà)會(huì)依次執(zhí)行。)
面試官:圖片加載比較慢,你這個(gè)輪播組件怎么解決。
我:new一個(gè)Image對(duì)象,然后注冊(cè)onload事件和src屬性,都o(jì)nload完畢了再顯示,此前顯示一個(gè)占位符。
面試官:如果圖片很多,有兩萬(wàn)個(gè),怎么辦。
我:按需加載,用多少加載多少(然后講了我的實(shí)現(xiàn)思路)。
面試官:但是用戶(hù)瀏覽了很多張圖片會(huì)越來(lái)越卡。
我:把之前看過(guò)的圖片從dom里刪掉,來(lái)釋放內(nèi)存,但是要是用戶(hù)回頭又看之前看過(guò)的就比較麻煩了,不曉得這個(gè)圖片該往哪里插入了。
面試官:是的,這道題我不告訴你正確答案,你可以好好想想(面試結(jié)束后面試官讓我看了百度圖片搜索的例子)。
我:好的。
面試官:你后臺(tái)用哪個(gè)語(yǔ)言最多?
我:java。
面試官:Why java?
我:好用。而且我發(fā)現(xiàn)其實(shí)大運(yùn)算時(shí)跟C++的效率也差不多。
面試官:還是要比C低一些的。
我:嗯。
面試官:用java寫(xiě)網(wǎng)站還是客戶(hù)端?
我:網(wǎng)站。
面試官:用框架嗎?
我:看需求,需求簡(jiǎn)單就用servlet可以了。
面試官:說(shuō)說(shuō)servlet的生命周期。
我:blablabla。
面試官:前臺(tái)怎么寫(xiě)。
我:。JSP<%%>不就行了。
面試官:我知道。我問(wèn)還有其他方案嗎?
我:我們現(xiàn)在用模板引擎,比如velocity。
面試官:講講velocity怎么寫(xiě)。
我:blablabla。
面試官:和JSP比,優(yōu)勢(shì)如何?
我:速度快,寫(xiě)起來(lái)簡(jiǎn)單,而且好看。
面試官:應(yīng)該不會(huì)比JSP快啊。
我:(這個(gè)問(wèn)題我們爭(zhēng)論了好久,面試官是沒(méi)有用過(guò)velocity的)。
面試官:velocity可以自定義標(biāo)簽嗎?
我:可以自定義指令,每個(gè)指令其實(shí)對(duì)應(yīng)的就是一個(gè)java類(lèi)。自定義指令要繼承Directive類(lèi)。
(然后問(wèn)了些MVC,此處不表)
面試官:(因?yàn)槲艺f(shuō)道這一年過(guò)來(lái)都在寫(xiě)后端,針對(duì)spring做了一層淺封裝)說(shuō)說(shuō)你的封裝里DAO怎么實(shí)現(xiàn)的。
我:泛型+模板設(shè)計(jì)模式。緩存是裝飾器模式搞得,裝飾的是不帶緩存的類(lèi)。
面試官:那表的結(jié)構(gòu)已經(jīng)事先定好了嗎?
我:對(duì)的,通過(guò)反射獲取類(lèi)屬性,然后轉(zhuǎn)換為sql,比如loginTime轉(zhuǎn)成login_time,類(lèi)名UserData轉(zhuǎn)成user_data。這個(gè)要事先商量好才可以。不遵守約定就沒(méi)法搞了。
面試官:緩存用什么實(shí)現(xiàn)的。
我:Ehcache。
面試官:和memcache差不多嗎?
我:沒(méi)錯(cuò)。
面試官:更新策略是什么。
我:LRU。然后get做緩存,update和delete都直接刪除對(duì)象。
面試官:用什么做key?
我:id。
面試官:說(shuō)說(shuō)緩存怎么避免并發(fā)下臟讀等不一致問(wèn)題。
我:我的類(lèi)都是單例的(我傻逼了,單例和并發(fā)有關(guān)系嗎?面試官后來(lái)也糾正了我這個(gè)錯(cuò)誤)。讀是沒(méi)有問(wèn)題的,寫(xiě)的話我沒(méi)有做處理,感覺(jué)ehcache自己內(nèi)部做了處理吧,比如代碼同步,或者用concurrenct包下的類(lèi)。
面試官:。(這道題我沒(méi)明白他要問(wèn)什么,他也沒(méi)明白我在說(shuō)什么。好混亂)不糾結(jié)這個(gè)問(wèn)題了。數(shù)據(jù)庫(kù)連接池怎么實(shí)現(xiàn)的。
我:直接用的DBCP。
面試官:我那時(shí)都是自己寫(xiě)的。
我:。(心中默念:牛逼)。
面試官:好的,有什么問(wèn)題想問(wèn)我的。
我:百度是彈性工作制嗎?Web前端部門(mén)可以接觸到其他技術(shù)嗎?
面試官:彈性工作制,我們一般都是十點(diǎn)鐘來(lái)上班(笑)。Web前端部門(mén)以寫(xiě)JS為主,會(huì)接觸到Controller的編寫(xiě),不過(guò)我們是用php的。也會(huì)接觸到服務(wù)器的配置和web工程的部署。不過(guò)大部分時(shí)間都在寫(xiě)JS上。
然后我們就互道Goodbye了。
我的處女面,就這樣獻(xiàn)出去了。
新聞標(biāo)題:百度Web前端面試經(jīng)歷
分享路徑:http://www.dlmjj.cn/article/djcoish.html


咨詢(xún)
建站咨詢(xún)
