自己整理的部分腾讯web前端开发的笔试题目及答案

1: 请实现,鼠标点击页面中的任意标签,alert该标签的名称.(注意兼容性)
   document.onclick = function(e){
       var e = e||event;
       var o = e['target'] || e['srcElement'];  //srcElement/target:事件源,就是发生事件的元素; FF下是target,IE下是srcElement
       alert(o.tagName.tolowerCase());
   }

2: 请指出一下代码的性能问题,并经行优化
   var info="腾讯拍拍网(www.paipai.com)是腾讯旗下知名电子商务网站。"; 
   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.com)是腾讯旗下知名电子商务网站。"); //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 = document.createElement('script');
         script.type = 'text/javascript';
         script.src = url;
         document.body.appendChild(script);
         if(script.readyState){
             script.onreadystatechange = function(){
                 if(script.readyState == 'loaded' || script.readyState == 'complete'){
                     script.onreadystatechange = null;
                     callback();
                 }
             }
         }else{
             script.onLoad = function(){
                 callback();
             }
         }

     }

4:  请写出jQuery绑定事件的方法,不少于两种
    $().bind()    //jQuery 扫描文档找到所有 $(‘a’) 元素,然后给每一个找到的元素的 click 事件绑定处理函数。
    $('a').live('click', function() { alert("That tickles!") }); //jQuery绑定处理函数到 $(document) 元素,并把 ‘click’ 和 ‘a’ 作为函数的参数。有事件冒泡到document节点的时候,检查这个事件是不是 click 事件,target element能不能匹配 ‘a’ css选择器,如果两个条件都是true,处理函数执行
    $('#container').delegate('a', 'click', function() { alert("That tickles!") });  //jQuery扫描文档找到 $(‘#container’),绑定处理函数到他的 click 事件,’a’ css选择器作为函数的参数。当有事件冒泡到 $(‘#container’),检查事件是不是 click,并检查target element是不是匹配css选择器,如果两者都符合,执行函数。
    综上,$(‘a’).live()与$(document).delegate(‘a’)很相似,很小的地方还是有不同,delegate的效率高一点
 
5: 请设计一套方案,用于确保页面中JS加载完全。 
原文地址:https://www.cnblogs.com/cfhome/p/2942956.html