案例(-)

1.如果今天是星期二,那么1000天后是星期几?用户输入一个天数,计算这个天数是星期几?

 案例分析:如果今天是星期2,7天后是星期2;

                    如果今天是星期2,14天后是星期2;

                   ..............................  21天后是星期2;

                                                    23 天后是星期4

                    如果今天的1天后是星期3,8天后也是星期3,15天以后也是星期3

                        49天后,也是星期2.因为49%7 结果为0

                       79天后,是星期4。因为79%7 结果是2;相当于2天后

                     所以1000后的星期几就是要看简化为相当 于几天后

             1000%7 结果是6,相当于6天后的星期,6天后就是星期1

//用户输入今天星期几
var today=parseInt(prompt('请输入今天是星期几','1'));
// 用户输入多少天后
var num=parseInt(prompt('请输入多少天后','1000'));
// 假设今天是星期1,7天后也是星期1
// 14天后也是星期1
// 15天后是星期2
// 17天后是星期4
// num%7=day (满足num%7==0)
// (num%7+today)%7 =day (满足 num%7 !=0 )
var day= (num%7+today)%7;
if(day==0){
alert(num+'天后是星期天')
}else{
alert('假设今天是星期'+today+','+num+'天后是星期'+day);
}

 

<script type="text/javascript">
         var num=parseInt(prompt('请输入今天星期几','2'));
         var week=['星期日','星期一','星期二','星期三','星期四','星期五','星期六']
         var day=(1000%7+num)%7;
           console.log(week[day]);
    </script>

 

2. 用户输入一个三位数,弹出各个数位的和

  比如: 用户输入155 ,就弹出11

             用户输入316 ,就弹出10

             用户输入989;就弹出26

              用户输入678; 就弹出21

分析: 用户输入的数字都很简单,需要想办法拆分得到每个位数,再进行求和

        个位数: 155%10=5;

          十位数:parseInt(155/10)%10=5;

           百位数:   parseInt(155/100)=1

 var num= parseInt(prompt('请输入一个三位数','234'));
          var ge=num%10;
          var shi=parseInt((num/10)%10) ;
          var bai=parseInt(num/100);
          var sum=ge+shi+bai;
          console.log(sum);

 3.利用arguments对象,输出无限参数之和

  <script type="text/javascript">
         function sum(){
            var sum=0;
            for(var i=0; i<arguments.length; i++){
                sum+=arguments[i];
            }

            return sum;
         }
         console.log(sum(1,43,542,54,54));
    </script>

4.设计一个函数,check如果只有一个参数,那么就是检查这个数是否是偶数。如果传两个参数,就检查这两个参数奇偶性是否相同。

    <script type="text/javascript">
         function check(){
             switch(arguments.length){
                case 1:
                return arguments[0]%2==0 ? true :false;
                break;
                case 2:
                return (arguments[0]+arguments[1])%2==0 ? true:false;
                break;
                default:
                throw new Error('输入错误,请检查。只支持1 和2 个参数');
             }
         }
   console.log(check(8))
   console.log(check(8,8));
   console.log(check(8,8,8));
    </script>

 

arguments的功能,是模拟函数的重载,使用一个函数,根据参数的个数不同,有不同的作用。

比如我们做设计一个sum函数,如果传进来一个参数,就得到1;如果是传2个参数,那么返回两个数字的和。比如:

 

//模拟函数重载,如果有两个参数,返回两个数的和,就要用arguments.length实际参数的个数,进行判断
function sum(a,b){
   switch(arguments.length){
      case 1:
           return ++a;
          break;
       case 2:
           return a + b;
           break;
   }
   /*if(arguments.length == 1){
       return ++a;
  }else if(arguments.length == 2){
       return a + b;
       //return arguments[0] + arguments[1];
   }*/
}
console.log(sum(10))
console.log(sum(10,2))

5.编写函数maxr(char) 返回字符串char中最长的连续重复字母

 

  

 

 

 

posted @ 2017-10-23 09:50  欢复  阅读(334)  评论(0编辑  收藏  举报