js面试小案例

217 阅读1分钟

1、计算2的n次幂,n可输入,n为整数;

<script>
        var n = parseInt(window.prompt('input'));
        var mul = 1;
        for(var i=0;i<n;i++){
            mul *= 2;
        }
        document.write(mul);
    </script>

2、计算阶乘;

方法一:
var n = parseInt(window.prompt('input'));
        var mul = 1;   
        for(var i = 1;i < n;i++){
            mul *= i;
        }
        document.write(mul)
方法二:递归方法:递归会让代码变简洁;但是特别慢,复杂代码不易使用;
function mul(n){
          if(n == 1){
              return 1;
          }
          return n*mul(n-1);
      }
      mul(10);
弊端:求不到0的阶乘,因为0的阶乘为1,不能计算,直接return 1;
function mul(n){
          if(n == 1 || n == 0){
              return 1;
          }
          return n*mul(n-1);
      }
      mul(10);

3、输入a,b,c三个数,找出其中最大的数;

var a = parseInt(window.prompt('input'));
        var b = parseInt(window.prompt('input'));
        var c = parseInt(window.prompt('input'));
        if(a>b){
            if(a>c){
                document.write(a);
            }else{
                document.write(c);
            }
        }else{
            if(b>c){
                document.write(b);
            }else{
                document.write(c);
            }
        }

4、斐波那契数列

规律:fb(n) == fb(n-1) + fb(n-2);

var n = parseInt(window.prompt('input'))
        var first = 1,second = 1,third;
        if(n>2){
            for(var i = 0;i<n-2;i++){
               third = first + second;
               first = second;
               second = third;
            } 
            document.write(third);
        }else{
            document.write(1);
        }
方法二:递归方法
function fb(n){
          if(n ==1 || n == 2){
              return 1;
          }
          return fb(n-1) +fb(n-2);
      }

5、打印100以内的质数

var count = 0;
        for(var i = 1;i<100;i++){
            //看看每一个i是否是质数;
            for(var j = 1;j <= i;j++){
                if(i%j == 0){
                   count ++; 
                }
            }
            if(count == 2){
                document.write(i+" ");
            }
            count = 0;
        }  

6、写一个函数。模拟不同小动物叫声;

 function scream(animal){
            switch (animal){
                case"dog":
                    document.write('wangwang!');
                    return;
                case "cat":
                    document.write('miaomiao!');
                    return;
                case "fish":
                    document.write('0~0~0~');
                    return;
            }
        }

7、写一组函数,输入数字,逆转并输出汉字形式;

 function reverse(){
           var num = window.prompt('input');
           var str = " ";
           for(var i = num.length-1;i >=0;i--){
               str += num[i];
           }
           document.write(str);
       }
       reverse();

 function reverse(){
           var num = window.prompt('input');
           var str = "";
           for(var i = num.length-1;i >=0;i--){
               str += transfer(num[i]);
           }
           document.write(str);
       }
       function transfer(target){
           switch(target){
               case "1":
                 return "壹";
               case "2":
                 return "贰";
               case "3":
                 return "叁";               
           }
       }