⾃⼰整理的部分腾讯web前端开发的笔试题⽬及答案
1: 请实现,⿏标点击页⾯中的任意标签,alert该标签的名称.(注意兼容性)
var e = e||event;
var o = e['target'] || e['srcElement'];  //srcElement/target:事件源,就是发⽣事件的元素; FF下是target,IE下是srcElement
alert(lowerCase());腾讯 笔试
}
2: 请指出⼀下代码的性能问题,并经⾏优化
var info="腾讯拍拍⽹(www.paipai)是腾讯旗下知名电⼦商务⽹站。";
info +="拍拍⽹于2005年9⽉12⽇上线发布,";
info +="2006年3⽉13⽇宣布正式运营,";          //仔细观察info这个变量,发现它每次都要⾃加字符串,如果字符串很⼤的⼜很多的话会⾮常影响性能的
info +="是⽬前国内第⼆⼤电⼦商务平台。";
info=info.split(",");
for(var i=0; i<info.length; i++)  {
alert(info[i]);
}
优化⽅案:
//对于js中的string类型,属于基本类型,因此⼀般情况下他们是存放在栈上的。如果字符串很⼤,info会每次变成⼀个很长的字符串,会很慢。如果⽤引⽤类型数组来存放则好很多,如:
var temp=[];
temp.push("腾讯拍拍⽹(www.paipai)是腾讯旗下知名电⼦商务⽹站。"); //temp只是⼀个指向堆
上数组的指针  temp.push("拍拍⽹于2005年9⽉12⽇上线发布,");
temp.push("2006年3⽉13⽇宣布正式运营,");
temp.push("是⽬前国内第⼆⼤电⼦商务平台。");
temp.join("");
alert(temp);
//对处理⼤字符串连接问题都可以采取这种思路
3:  请给出异步加载js⽅案,不少于两种。
1.defer    (仅限于IE)
2.async  (Html5的script标签的属性)
3.创建script,引进脚本⽂件
function loadScript(url,callback){
var script = ateElement('script');
script.src = url;
document.body.appendChild(script);
adyState){
adyState == 'loaded' || adyState == 'complete'){
callback();
}
}
}else{
callback();
}
}
}
4:  请写出jQuery绑定事件的⽅法,不少于两种
$().bind()    //jQuery 扫描⽂档到所有 $(‘a’) 元素,然后给每⼀个到的元素的 click 事件绑定处理函数。
$('a').live('click', function() { alert("That tickles!") }); //jQuery绑定处理函数到 $(document) 元素,并把 ‘click’ 和 ‘a’ 作为函数的参数。有事件冒泡到document节点的时候,检查这个事件是不是 click 事件,target element能不能匹配 ‘a’ css选择器,    $('#container').delegate('a', 'click', function() { alert("That ti
ckles!") });  //jQuery扫描⽂档到 $(‘#container’),绑定处理函数到他的 click 事件,’a’ css选择器作为函数的参数。当有事件冒泡到 $(‘#container’),检查事件是不是 click,并检查target e 综上,$(‘a’).live()与$(document).delegate(‘a’)很相似,很⼩的地⽅还是有不同,delegate的效率⾼⼀点
5:请设计⼀套⽅案,⽤于确保页⾯中JS加载完全。