記2012年百度web前端研發實習生的筆試面試經歷


2012年5月6日在交大參加了百度的實習生招聘筆試,投的是web前端方向。

  拿到卷子時覺得好些題目很眼熟,其中一個HTML+CSS布局的問題在網上見過,一個div固定寬度,一個div自適應,要求覆蓋整個頁面。用浮動布局可以解決這個問題,代碼也很簡單

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 2 <html>
 3     <head>
 4         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5         <title>layout</title>
 6         <style type="text/css">
 7         #right{
 8         float:right;
 9         width:200px;
10         background-color:#ff0000;
11         }
12         #left{
13         margin-right:200px;
14         background-color:#00ff00;
15         }
16         </style>
17     </head>
18     <body>
19         <div id="right">right</div>
20         <div id="left">left</div>
21     </body>
22 </html>

后來回想這道題目的考點在哪里,覺得出題人可能會看重代碼風格,DOCTYPE相關,以及瀏覽器兼容性的相關問題,偶的一位同學竟然一下子寫了三個方案,神牛一枚。畢竟紙上寫代碼和電腦上是完全兩種不同的感受,感覺自己答得很一般。

  還有一道題目是說實現一個中文的時鍾。如將2012.05.06 12:12:34顯示為二零一二年五月六日十二點十二分三十四秒,要求精確到秒。自己的思路是重寫了Object的toString方法,如果是number類型的話就通過switch-case語句轉換為中文字符,然后寫一個displayTime()函數,函數主體是獲得當前時間,然后分別得到年月日時分秒,顯示的時候分別調用它們重寫后的toString()方法將時鍾打印出來。時鍾的更新當然是通過setInterval(displayTime, 1000);來實現。后來面試的時候問了面試官,他說用一個數組存放中文字符即可,然后通過對應的下標來替換。聽完后不得不說自己真的挺笨的,呵呵。

  還有一道奇怪的算法題,說是公司里某個部門有200個員工,設計一個算法計算任意一個員工與自己同月同日生日的概率(一年按365天計算)。思來想去也不知道該怎么解決,后來問面試官,他也沒怎么說,感覺自己就是在給面試官找茬,真是欠揍。在此求指點。

  還有一道簡述JavaScript如果實現類,繼承,私有變量的題。相信對Javascript熟悉的朋友們都知道主要是通過prototype和constructor這兩個屬性實現。其中prototype是對原型對象的引用,constructor是對對象構造函數的引用。通過他們即可以實現類,繼承和私有變量。

 1 function Book(){    //基類Book
 2         this.title = "head first";
 3         this.author = "daisy";
 4         this.show = function show(){    
 5             window.document.write(this.title+'<br>'+this.author+'<br>');
 6         }
 7     }
 8 function TeachBook(){}  
 9     TeachBook.prototype = new Book();  //TeckBook的原生對象由Book構造
10     TeachBook.prototype.constructor = TeachBook;  //TeacBook的構造方法為當前方法,個人覺得JS這點很奇妙
11     TeachBook.prototype.addPub = function addPub(p){  //為子類添加新方法
12         TeachBook.prototype.publisher = p;
13     };        

  還有一題是說在聲明變量時不加var的壞處。當時不會,后來看書后了解到,對於不需要初始化的變量是必須要添加var的,否則是不合法的。至於有什么壞處,還請指點。

1 var name="daisy";//合法
2 var name;//合法
3 name="daisy";//合法
4 name;//不合法

  最后一題是說說自己最得意的作品,在其中的角色以及有哪些升級方案。這里就不多說了。

  關於面試,面試官真心是一位很好很好的人,像個老師一樣,整個氣氛很輕松。沒有要求寫代碼(微微意外)。在做了簡短的自我介紹后,他讓我聊起了自己的項目。聊完后面試官竟然覺得我適合去做PM(主要是用戶體驗和產品設計方面的),跟我說了好些PM應該具備的素養,讓我都有點不知所措了,感覺真心偏了好遠。不過聊完PM還是很感謝他的,他和我說了很多公司內部運作的過程,讓我受益匪淺啊,這些東西絕對是書本上看不到的,聊完后感覺自己真心是籠中鳥,啥也不知道的感覺。后來還是扯回了web前端的一些技術問題,聊了瀏覽器的兼容(據他給出的2012年3月底的數據統計,國內的IE使用率竟然還高達90以上,IE6這個大bug竟然也還有很大一部分。以前着實被國外的全球統計數據給蒙蔽了,哎,如何讓開發人員省心呢),怎么學習前端技術,怎么優化的一些問題。整個過程就像是在交流學習,再次感謝面試官給了我這次機會,結果啥的已經不那么重要了,以后多努力吧,呵呵。


免責聲明!

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



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