腾讯的笔试题基本是按招聘的职位分的,软件开发类的以C语言、C++、数据结构、操作系统、软件工程等知识为主,Java开发工程师竟然连一道java题都不见的,有点吃亏啊!

淘宝的技术类笔试,都是做同一份试卷,跟腾讯的技术类的题差不多,主要以基础为主!web前端开发工程师的题好一点,只需做情景题跟前端题:css页面布局、javascript dom 编程、正则表达式、json构造文字对象(json编程第一次见到!) !

2011年百度web前端笔试 大连

1.列举5个HTML块元素,列举你所知道的css盒模型
2.说说css优化级
3.用javascript深度克隆一个对象
4.一组未知个数的数字,将它们平均分成3份,使每份的和尽量相等
5.加快网页加载速度的优化方法有哪些
6.说说AJAX跨域方法,这些方法分别有什么特点,适用于什么场景
7.说说你最满意的一个作品
    a)如何设计,实现的
    b)你在其中担任什么角色
    c)还可以从什么地方进行优化

2011年淘宝web前端笔试

1.根据图写出符合web语义的html,用css代码

2.分别有3个注册框,写校验函数

 会员名:长度在5-20字节之间,汉字算两个字节

 手机号:11位,开头为 13,15,18

 邮箱:普通邮箱

3.设计一方法找出页面任一元素相对页面左上角坐标,若要求考虑这个元素的父元素可能有滚动条的情况该如何实现。

4 淘宝的秒杀团购中,倒计时组件的应用很广,这个组件的计数与服务端时间的一致很重要,设计实现这个组件

    试卷上给出了一个图,内容为 32小时57分57.1秒

解答:百度题相对注重基础,淘宝更注重实用,需要了解它的产品

2.分别有3个注册框,写校验函数

 会员名:长度在5-20字节之间,汉字算两个字节

 
  1. <html>    
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">    
  3. 输入待测字串: &nbsp;<input type="text" onblur="test(this.value);">    
  4. </html>    
  5. <script language="javascript">    
  6. <!--     
  7. //测试匹配情况     
  8. function test(inputVal)     
  9. {     
  10.     //去除首尾空格     
  11.     inputValinputValinputVal = inputVal.replace(/^\s*|\s*$/g,"");     
  12.     //零长字串不作处理     
  13.     if ( inputVal.length == 0 )     
  14.     {     
  15.         return;     
  16.     }     
  17.     //只能匹配数字,字母或汉字     
  18.     var _match = inputVal.match(/^[a-zA-Z0-9\u4e00-\u9fa5]+$/g);     
  19.     //匹配数字或字母(包括大小写)     
  20.     var codeMatch = inputVal.match(/[a-zA-Z0-9]/g);     
  21.     //匹配汉字     
  22.     var charMatch = inputVal.match(/[\u4e00-\u9fa5]/g);     
  23.     //数字或字母个数     
  24.     var codeNum = codeMatch ? codeMatch.length : 0;     
  25.     //汉字个数     
  26.     var charNum = charMatch ? charMatch.length : 0;     
  27.     //成功     
  28.     if ( _match && codeNum + 2*charNum <= 12 )     
  29.     {     
  30.         alert("输入正确!");     
  31.         return;     
  32.     }     
  33.     //失败     
  34.     alert("输入错误!");      
  35. }     
  36. //-->    
  37. </script>  

 方法2:

 
  1. function getLength(s){     
  2.  var i,sum;     
  3.  sum=0;     
  4.  for(i=0;i<s.length;i++) {     
  5.  if ((s.charCodeAt(i)>=0) && (s.charCodeAt(i)<=255))     
  6.  sumsum=sum+1;     
  7.  else    
  8.  sumsum=sum+2;     
  9.  }     
  10.  return sum;     
  11. }  

 方法3:验证可以得到正确的字节数,中文算两个字节

 
  1. <html> 
  2. <head> 
  3.    <script language="javascript"> 
  4.     function checkBytes()  
  5.     {  
  6.      var txt=document.getElementById("txt").value;  
  7.      if(txt.length>0){  
  8.       alert('字节数是 '+txt.replace(/[^x00-xFF]/g,'**').length);  
  9.      }  
  10.      }  
  11.    </script> 
  12. </head> 
  13. <body> 
  14.    <input type="text" name="txt" name="txt"/><hr/> 
  15.    <input type="button" name ="btn" value="字节数统计" onclick="javascript:checkBytes();"/> 
  16. </body> 
  17. </htmL> 

方法4:

 
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml">      
  3. <head> 
  4.     <title>限制输入字节数</title> 
  5.     <meta name="author" content="sohighthesky"/> 
  6.     <style type="text/css"> 
  7.         #div1 {width:500px;margin:20px auto;}  
  8.         #div1 ul {list-style-type:decimal;line-height:25px;}  
  9.     </style> 
  10. </head>   
  11. <body> 
  12.     <div id="div1"> 
  13.         <ul> 
  14.             <li>可输入5个字节:<input type="text" id="txt1" value="你好e"/></li> 
  15.             <li>可输入6个字节:<input type="text" id="txt2" value="hello,"/></li> 
  16.             <li>可输入7个字节:<input type="text" id="txt3" value=",he"/></li> 
  17.             <li>可输入n个字节:<input type="text" id="txt4"/></li> 
  18.         </ul> 
  19.     </div> 
  20. </body> 
  21. <script type="text/javascript"> 
  22. /*!  
  23.  *author:sohighthesky  
  24.  *Date:2010-1-16  
  25.  */  
  26. !function(){  
  27. var len=function(s){//获取字符串的字节长度  
  28.     s=String(s);  
  29.     return s.length+(s.match(/[^\x00-\xff]/g) ||"").length;//加上匹配到的全角字符长度  
  30. },  
  31. limitDo=function(limit){  
  32.     var val=this.value;  
  33.     if(len(val)>limit) {  
  34.         //valval=val.substr(0,limit);  
  35.         while(len(valval=val.substr(0,val.length-1))>limit);  
  36.         this.value=val;  
  37.     }  
  38. },$=function(id){return typeof(id)==='string'?document.getElementById(id):id;};  
  39.  
  40. $("txt1").onkeyup=function(){limitDo.call(this,5)};  
  41. $("txt2").onkeyup=function(){limitDo.call(this,6)};  
  42. $("txt3").onkeyup=function(){limitDo.call(this,7)};  
  43. }();  
  44. </script> 
  45. </html> 

 手机号:11位,开头为 13,15,18

 
  1. <html> 
  2. <head> 
  3. <script language="javascript" type="text/javascript"> 
  4. <!--  
  5. function checkMobile(){  
  6.      var mobile=document.getElementById("mobile").value;  
  7.      var reg0=/^13\d{5,9}$/;   //130--139。至少7位  
  8.      var reg1=/^153\d{8}$/;  //联通153。至少7位  
  9.      var reg2=/^159\d{8}$/;  //移动159。至少7位  
  10.      var reg3=/^158\d{8}$/;  
  11.      var reg4=/^150\d{8}$/;  
  12.      var my=false;  
  13.      if (reg0.test(mobile))my=true;  
  14.      if (reg1.test(mobile))my=true;  
  15.      if (reg2.test(mobile))my=true;  
  16.      if (reg3.test(mobile))my=true;  
  17.      if (reg4.test(mobile))my=true;  
  18.      if (!my){  
  19.         alert('对不起,您输入的手机号码错误。')  
  20.      }else{  
  21.         alert("恭喜,输入的手机号码正确");  
  22.      }  
  23. }  
  24. //--> 
  25. </script> 
  26. </head> 
  27. <body> 
  28.            手机号码:       
  29.             <input name="mobile" type="text" id="mobile" size="20" maxlength="16" value=""> 
  30.             <input type="button" value="检测" onClick="checkMobile()"> 
  31. </body> 
  32. </html> 

 方法2:

 
  1. <html> 
  2. <head> 
  3. <meta http-equiv="content-Type" content="text/html;charset=gb2312"> 
  4. </head> 
  5. <body> 
  6. <!--把下面代码加到<body>与</body>之间--> 
  7. <script> 
  8. function aa(obj)  
  9. {  
  10. if(obj.length!=11) alert("这个手机号不存在!");  
  11. else if(obj.substring(0,2)!="13") alert("这个手机号不存在!");  
  12. else if(isNaN(obj)) alert("这个手机号不存在!");  
  13. else alert("这是个正确的手机号!");  
  14. }  
  15. </script> 
  16. <form name="codeN"> 
  17. 请输入手机号码:<input type="text" name="No"><input type="button" value="验证" onclick="aa(document.codeN.No.value)"> 
  18. </form> 
  19. </body> 
  20. </html> 

方法3:

 
  1. function isMobel(value)     
  2. {     
  3. if(/^13\d{9}$/g.test(value)||(/^15[0-35-9]\d{8}$/g.test(value))||     
  4. (/^18[05-9]\d{8}$/g.test(value))){       
  5.             return true;     
  6. }else{     
  7.             return false;     
  8. }     
  9. }  

邮箱:普通邮箱

用一个正侧表达式在javascript中验证就是咯!

<script language='javascript'>
function chkMail(){
if(document.form1.email.value=''){
alert("请填写邮箱地址!");
document.form1.email.focus();
return false;
}
//开始验证
var email = document.form1.email.value;
var pattern = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/;
chkFlag = pattern.test(email);
if(chkFlag){
return true;
}
else
{
alert("邮箱地址的格式不正确!");
document.form1.email.focus();
return false;
}
}
</script>
~~~~~~~~~~~~~~~~~~~~~~~完毕!
最简单的就一句:
if(!/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/.test('email'))
{
alert('email不正确');
}

----------------------------------------------------------------------------------------------------------------------------