腾讯的笔试题基本是按招聘的职位分的,软件开发类的以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字节之间,汉字算两个字节
- <html>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- 输入待测字串: <input type="text" onblur="test(this.value);">
- </html>
- <script language="javascript">
- <!--
- //测试匹配情况
- function test(inputVal)
- {
- //去除首尾空格
- inputValinputValinputVal = inputVal.replace(/^\s*|\s*$/g,"");
- //零长字串不作处理
- if ( inputVal.length == 0 )
- {
- return;
- }
- //只能匹配数字,字母或汉字
- var _match = inputVal.match(/^[a-zA-Z0-9\u4e00-\u9fa5]+$/g);
- //匹配数字或字母(包括大小写)
- var codeMatch = inputVal.match(/[a-zA-Z0-9]/g);
- //匹配汉字
- var charMatch = inputVal.match(/[\u4e00-\u9fa5]/g);
- //数字或字母个数
- var codeNum = codeMatch ? codeMatch.length : 0;
- //汉字个数
- var charNum = charMatch ? charMatch.length : 0;
- //成功
- if ( _match && codeNum + 2*charNum <= 12 )
- {
- alert("输入正确!");
- return;
- }
- //失败
- alert("输入错误!");
- }
- //-->
- </script>
方法2:
- function getLength(s){
- var i,sum;
- sum=0;
- for(i=0;i<s.length;i++) {
- if ((s.charCodeAt(i)>=0) && (s.charCodeAt(i)<=255))
- sumsum=sum+1;
- else
- sumsum=sum+2;
- }
- return sum;
- }
方法3:验证可以得到正确的字节数,中文算两个字节
- <html>
- <head>
- <script language="javascript">
- function checkBytes()
- {
- var txt=document.getElementById("txt").value;
- if(txt.length>0){
- alert('字节数是 '+txt.replace(/[^x00-xFF]/g,'**').length);
- }
- }
- </script>
- </head>
- <body>
- <input type="text" name="txt" name="txt"/><hr/>
- <input type="button" name ="btn" value="字节数统计" onclick="javascript:checkBytes();"/>
- </body>
- </htmL>
方法4:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <title>限制输入字节数</title>
- <meta name="author" content="sohighthesky"/>
- <style type="text/css">
- #div1 {width:500px;margin:20px auto;}
- #div1 ul {list-style-type:decimal;line-height:25px;}
- </style>
- </head>
- <body>
- <div id="div1">
- <ul>
- <li>可输入5个字节:<input type="text" id="txt1" value="你好e"/></li>
- <li>可输入6个字节:<input type="text" id="txt2" value="hello,"/></li>
- <li>可输入7个字节:<input type="text" id="txt3" value=",he"/></li>
- <li>可输入n个字节:<input type="text" id="txt4"/></li>
- </ul>
- </div>
- </body>
- <script type="text/javascript">
- /*!
- *author:sohighthesky
- *Date:2010-1-16
- */
- !function(){
- var len=function(s){//获取字符串的字节长度
- s=String(s);
- return s.length+(s.match(/[^\x00-\xff]/g) ||"").length;//加上匹配到的全角字符长度
- },
- limitDo=function(limit){
- var val=this.value;
- if(len(val)>limit) {
- //valval=val.substr(0,limit);
- while(len(valval=val.substr(0,val.length-1))>limit);
- this.value=val;
- }
- },$=function(id){return typeof(id)==='string'?document.getElementById(id):id;};
- $("txt1").onkeyup=function(){limitDo.call(this,5)};
- $("txt2").onkeyup=function(){limitDo.call(this,6)};
- $("txt3").onkeyup=function(){limitDo.call(this,7)};
- }();
- </script>
- </html>
手机号:11位,开头为 13,15,18
- <html>
- <head>
- <script language="javascript" type="text/javascript">
- <!--
- function checkMobile(){
- var mobile=document.getElementById("mobile").value;
- var reg0=/^13\d{5,9}$/; //130--139。至少7位
- var reg1=/^153\d{8}$/; //联通153。至少7位
- var reg2=/^159\d{8}$/; //移动159。至少7位
- var reg3=/^158\d{8}$/;
- var reg4=/^150\d{8}$/;
- var my=false;
- if (reg0.test(mobile))my=true;
- if (reg1.test(mobile))my=true;
- if (reg2.test(mobile))my=true;
- if (reg3.test(mobile))my=true;
- if (reg4.test(mobile))my=true;
- if (!my){
- alert('对不起,您输入的手机号码错误。')
- }else{
- alert("恭喜,输入的手机号码正确");
- }
- }
- //-->
- </script>
- </head>
- <body>
- 手机号码:
- <input name="mobile" type="text" id="mobile" size="20" maxlength="16" value="">
- <input type="button" value="检测" onClick="checkMobile()">
- </body>
- </html>
方法2:
- <html>
- <head>
- <meta http-equiv="content-Type" content="text/html;charset=gb2312">
- </head>
- <body>
- <!--把下面代码加到<body>与</body>之间-->
- <script>
- function aa(obj)
- {
- if(obj.length!=11) alert("这个手机号不存在!");
- else if(obj.substring(0,2)!="13") alert("这个手机号不存在!");
- else if(isNaN(obj)) alert("这个手机号不存在!");
- else alert("这是个正确的手机号!");
- }
- </script>
- <form name="codeN">
- 请输入手机号码:<input type="text" name="No"><input type="button" value="验证" onclick="aa(document.codeN.No.value)">
- </form>
- </body>
- </html>
方法3:
- function isMobel(value)
- {
- if(/^13\d{9}$/g.test(value)||(/^15[0-35-9]\d{8}$/g.test(value))||
- (/^18[05-9]\d{8}$/g.test(value))){
- return true;
- }else{
- return false;
- }
- }
邮箱:普通邮箱
用一个正侧表达式在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不正确'); }---------------------------------------------------------------------------------------------------------------------------- js: function isEmail(email) { invalidChars = " /;,:{}[]|*%$#!()`<>?"; if (email == "") { return false; } for (i=0; i< invalidChars.length; i++) { badChar = invalidChars.charAt(i) if (email.indexOf(badChar,0) > -1) { return false; } } atPos = email.indexOf("@",1) if (atPos == -1) { return false; } if (email.indexOf("@", atPos+1) != -1) { return false; } periodPos = email.indexOf(".",atPos) if(periodPos == -1) { return false; // and at least one "." after the "@" } if ( atPos +2 > periodPos) { return false; // and at least one character between "@" and "." } if ( periodPos +3 > email.length) { return false; } return true; } aspx: 调用: <input id=zz><input type=button value=check οnclick="if(isEmail(zz.value))alert('正确');else alert('错误')"> |