• 四道腾讯的javascript面试题


    今天整理自己的文件夹时,发现了曾经面试腾讯实习生时的被问挂了的面试题,我将它们整理好了供大家借鉴。当时要求的是手写代码。汗啊,我那时弱爆了!

    1,将给定数组转换为一个随机数组

     1 Array.prototype.shuffle=function(){
     2         var resultArr=[];
     3         var len=this.length;
     4 
     5         while(len){
     6             var _index=parseInt(Math.random()*len);
     7                 resultArr.push(this[_index]);//每次取得数组中一个字符,放到新的数组中
     8             for(var i=_index;i<len;i++){//后面的向前移动
     9                 this[i]=this[i+1];
    10             }
    11             len--;
    12         }
    13         return resultArr;
    14     }
    15    var a=new Array('1','2','3','4','5','6');
    16    alert(a.shuffle());

    2,统计给定字符串里的各个字符出现的次数

     1 var a="aassdddffffffffggghhhjjjkkkll";
     2     function counts(str){
     3         var obj={};
     4         for(var i=0;i<str.length;i++){
     5             if(!obj[str[i]]){
     6                 obj[str[i]]=1;
     7             }else{
     8              obj[str[i]]++;
     9             }
    10             
    11         }
    12         return obj;
    13     }
    14 
    15     console.log(counts(a));//Object {a: 2, s: 2, d: 3, f: 8, g: 3…}

     3,判断js代码加载完成

     1 function dynamicLoad()  
     2     {  
     3        var _doc=document.getElementsByTagName('head')[0];  
     4        var script=document.createElement('script');  
     5 
     6         script.setAttribute('type','text/javascript');  
     7         script.setAttribute('src','jquery.js');  
     8 
     9         _doc.appendChild(script);  
    10         //非ie        ie,
    11         script.onload=script.onreadystatechange=function(){  
    12             //非ie               ie,该值不确定        
    13            if(!this.readyState||this.readyState=='loaded'||this.readyState=='complete'){  
    14              alert('done');  
    15              script.onload=script.onreadystatechange=null;  
    16         }  
    17         }  
    18     }

    4,实现三列布局:

     1 <!DOCTYPE html>
     2 <html xmlns="http://www.w3.org/1999/xhtml">
     3 <head>
     4 <meta charset="utf-8"/>
     5 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
     6 <style>
     7 #side { background: #99FF99; height: 300px;  120px; float: left; }
     8 #main { background: #99FFFF; height: 300px;  auto; margin-left: 120px; }
     9 #main-left{ background:red;float:left; 200px; height:300px;}
    10 #main-right{ margin-left:200px; height:300px; auto;}
    11 </style>
    12 </head>
    13 <body>
    14 <div id="side">此处为左边部分</div>
    15 <div id="main">
    16     <div id="main-left">右边的左列</div>
    17     <div id="main-right">右边的右列</div>
    18 
    19 </div>
    20 </body>
    21 </html>

    开心一刻:

  • 相关阅读:
    正确理解原型和原型链
    git push之后服务器如何自动更新?
    项目工具三:Swagger导出离线版HTML5和PDF格式api文档
    项目工具二:通过SQL导出单表的结构文档
    项目工具一:把文件夹里所有子文件夹与文件按树形结构导出
    一个完整的HTTP请求过程详细
    SAAS多租户数据逻辑隔离
    JS同步执行代码
    提升JAVA代码的好“味道”
    Connection keepalive
  • 原文地址:https://www.cnblogs.com/wenber/p/3632924.html
Copyright © 2020-2023  润新知