• 金山笔试总结


      金山公司的笔试题目,过后把自己在考场写的代码测试一下,发现存在不少问题,仔细地总结了一番,如下:

    一、检查一个值是否为NaN

     1 <html> 
     2 <head> 
     3 <script language="JavaScript"> 
     4     function isNumber(){ 
     5     var btnObj=document.getElementById("idTel"); 
     6     var strValue=btnObj.value; 
     7 
     8     if(!isNaN(strValue)){ //若是数字则返回false
     9         alert("is number"); 
    10     }else{ 
    11     alert("not a number"); 
    12     } 
    13 
    14     } 
    15 </script> 
    16 </head> 
    17 <body> 
    18     <form action="" method="post" name=""> 
    19         <input type="text" name="tel" id="idTel" value=""> 
    20         <input type="button" name="isNum" value="提交" onclick="isNumber()"> 
    21     </form> 
    22 </body> 
    23 </html> 


    二、JS函数实现sum(2)(3) => 5

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Document</title>
     6 </head>
     7 <body>
     8     <script type="text/javascript">
     9         function sum(a){
    10             return function(b){
    11                 return a+b;
    12             }
    13         };
    14         alert(sum(3)(2));//闭包有两种应用:1、函数作为返回值 2、函数作为参数传递
    15     </script>
    16 </body>
    17 </html>


    三、从整数1到n共出现多少个0

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title></title>
     6 </head>
     7 <body>
     8     <script type="text/javascript">
     9     //从整数1到n共出现了多少个0
    10         function count_zero(n){
    11             var arr = new Array();
    12             for(var i = 1;i <= n;i++){
    13                 var b = i,r;
    14                 while(b != 0){
    15                     r = b % 10;
    16                     b = Math.floor(b / 10); //一开始是"b=b/10",js并不像C语言
    17                     arr.push(r);
    18                 }
    19             };
    20             var zero_num = count(arr);
    21             return zero_num;
    22         }
    23 
    24         function count(arr){
    25             var count = 0;
    26             for(var i = 0;i < arr.length;i++){
    27                 if(arr[i] == 0){
    28                     count++;
    29                 }
    30             }
    31             return count;
    32         }        
    33 
    34         var a  = count_zero(100);
    35         var b  = count_zero(105);
    36         console.log(a);
    37         console.log(b);
    38         
    39     // javascript除法如何取整  
    40     // Math.round(x) 四舍五入,如Math.round(0.60),结果为1;Math.round(0.49),结果为0;  
    41     // Math.floor(x) 向下舍入,如Math.floor(0.60)与Math.floor(0.49),结果均为0;  
    42     // Math.ceil(x)向上舍入,如Math.ceil(0.60)与Math.ceil(0. 49),结果均为1。
    43     </script>
    44 </body>
    45 </html>


    四、JS函数,从数组中清除重复元素

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Document</title>
     6 </head>
     7 <body>
     8     <script type="text/javascript">
     9         function uniqueArray(arr){
    10             var arr = arr || [];    //var arr = arr | [];   arr一直都是0。。。
    11             console.log(arr);
    12             var obj = {};
    13             for(var i = 0;i < arr.length;i++){
    14                 var v = arr[i];
    15                 if(typeof(obj[v]) == 'undefined'){
    16                     obj[v] = 1;
    17                 }
    18             };
    19             arr.length = 0;
    20             for(var i in obj){
    21                 arr[arr.length] = i;
    22             };
    23             return arr;
    24         }
    25         var arr1 = [1,3,5,7,7,8,9,3,10,8];
    26         var arr2 = [1,3,5,7,7,8,9,3,10,8,"sdsdsds","sss","ffff","sss","sss"];
    27         console.log(uniqueArray(arr1));
    28         console.log(uniqueArray(arr2));         
    29     </script>
    30 </body>
    31 </html>

      这是在度娘上找到的不错的一种算法

    五、prototype实现一个简单的继承例子

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Document</title>
     6 </head>
     7 <body>
     8     <script type="text/javascript">
     9         function Father(){
    10             this.Supproperty = "hi,i am gdt";
    11         }
    12         Father.prototype.getSupValue = function(){
    13             return this.Supproperty;
    14         };
    15         function Son(){
    16             this.Subproperty = "hi,i am fxt";
    17         }
    18         Son.prototype = new Father();
    19 
    20         Son.prototype.getSubValue = function(){
    21             return this.Subproperty;
    22         };
    23 
    24         var instance = new Son();
    25         console.log(instance instanceof Son);//instanceof用于判断一个变量是否某个对象的实例,如是则返回true
    26         console.log(instance);
    27         //引用父类的属性和方法            
    28         console.log('父类属性:'+instance.Supproperty);
    29         console.log('父类属性:'+instance.getSupValue());
    30         //使用子类的属性和方法
    31         console.log('子类属性:'+instance.Subproperty);        
    32         console.log('子类属性:'+instance.getSubValue());
    33     </script>
    34 </body>
    35 </html>

    六、网络请求优化方案

    • 尽量减少HTTP请求数里的减少图片请求数量,可用实现CSS Sprite
    • 压缩文本和图像,使用gzip这样的压缩技术,依靠增加服务端压缩和浏览器解压的步骤,来减少资源的负载。

    • 使用Ajax来从Web服务器上获取数据,它并不需要更新正在运行的页面,Ajax能更新页面上的某个部分而不需要重新构建整个页面。

      详细还可参考http://blog.jobbole.com/46599/

  • 相关阅读:
    接口测试常见bug
    软件测试面试题含答案
    每个测试都该知道的测试用例方法及细节设计
    从“如何测试一个杯子”理解功能、界面、性能、安全测试?
    小白必看:测试人有必要参考的软件测试工作规范
    经验分享:给软件测试人员15个最好的测试管理工具
    DFS路径规划
    Trian(列车调度)
    GAIA
    CSWS_E_ROB深度估计方法
  • 原文地址:https://www.cnblogs.com/DTBelieve/p/5384740.html
Copyright © 2020-2023  润新知