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竟然也還有很大一部分。以前着實被國外的全球統計數據給蒙蔽了,哎,如何讓開發人員省心呢),怎么學習前端技術,怎么優化的一些問題。整個過程就像是在交流學習,再次感謝面試官給了我這次機會,結果啥的已經不那么重要了,以后多努力吧,呵呵。