函数的组成形式

144 阅读1分钟
          function test(a,b){
          //var a;
         //var b;
           }

这里()添加的参数a b,相当于 var a 和var b 声明了两个变量

              function test(a,b){ 
                         
                    }
                            test(1, 2);

这里的test( 1,2) 等于对 a b 赋值。

     function test(a,b){ 
                     doucument.write(a + b);
              } 
            test(1, 2);

这里赋值之后进行加减法。 。

function sum(a,b){
 var c= a + b;
 doucument.write(c);//这里打印出来页面上显示。
 //如果需要在控制台显示就打 console.log(c);
 }
 sum(1,2);
这个函数的功能就是两个数相加。 把ab 变量了 变成参数。

。。。。

详细解释 //形式参数- 形参

var c= a + b;
 doucument.write(c);
 }
 //实际参数-实参
 sum(1 , 2 );

//来个判断
function sum(a , b){
     if(a>10){
       document.write(a-b);
     }else if(a < 10){
       document.write(a + b);
     }else{
        document.write(10);
     }
}
   //实际参数-实参
   sum(11,2)

不定参 参数 数量可以不定 谁比谁多无所谓

    document.write(a);
}
  //实际参数-参数
  sum(11,2,3)
  //这里只打印11
  

。。。

形参多,实参少也可以,是没有实参的 就打印undefined

function sum(a, b ,c, d){
     document.write(a);
     document.write(d);
}
   //实际参数--实参
   sum(11,2,3)
   

这种参数的好处是 大家往下看

//先一步一步的来,
function sum(a,b,c,d){
//arguments--[11,2,3]这个是下面的实参列表
//arguments 系统自带的数组
   console.log(sum.length);
   } 
   //实际参数-实参
   sum(11,2,3)

。。。

我们来举例来玩一下


function sum(a,b,c,d){
     if(sum.length > arguments.length) {
               console.log(' 形参多了')
               }else if(sum.length <argumentss.length){
               console.log('实参多了')
               }else{
               console.log('相等')
               }
 } 
   //实际参数- 实参
 sum(11 , 2 ,3);
 
 
 `
 
 //
 //我们举例来玩一下 ,不固定形参列表的好处,
 //不定参比定参功能强大得多 scream
 //任意个数求和
 function sum(){
     //arguments[1,2,3,4,5,6,7,8,9];
     var result = 0;
     for( var i = 0; i <arguments.length; i++){
        result +=arguments[i];
     }
     console.log(result);
 }
 sum (1,2,3,4,5,6,7,8,9)
 //这样就把sum里面的和求出来。
 
 
** 形参合实参是映射关系 谁变对方都要变  **
   function sum(a,b){
       //arguments[1,2];
       //var a = 1;
       a = 2
       arguments[0] = 3;
       console.log(a);
   }
   sum(1,2);
**但是有一种特殊特殊情况
举例
实参一个,形参有两个
这个时候arguments[1] 就没有值了 这个时候b= 2 ,就是        undefined

所以实参列表出生的时候有几个 他就有几个

所以结论是 形参和实参 数量相等才有映射关系
**
 
     function sum(a,b){
       b =2;
       console.log(arguments[1]);
     }
 sum[1];
 //以上这种就无效
 

常用关键词return 识别到return 函数就会终止 ,如果我们没写 系统会自动写 如果写到中间,所以这个不能瞎写,第一点功能

             function sum(a,b){
                   console.log('a');
                   return;
                   console.log(b);//这一行就不会执行
             }
             sum(1,2);

return第二点常用功能 返回值的意思 他的本意是把一个值返回到函数的外部

           function sum(){
                   return 123;
           }
             //sum(1);
             var num = sum{};
             //这里的123就被扔回来聊
      

11.png

所以这个是又返回 又终止

累加累和

          function myNumber(target){
     return +target;
 }
 var num = myNumber('123');
 console.log(typeof(num) + " " + num );
          //这里是Number    空格   123
 


 
 

22.png

说一个 typeof的问题, typeof 也是函数 加空格的意思

练习题。。附答案 33.png

第一个题

                function scream(animal){
                switch(animal){
                       case "dog":
                       document.write('wang!');
                       return;
                       
                       case " cat":
                       document.write('miao!');
                       return;
                       
                       case "fish":
             document.write('~0~0~0~')
             //这个是鱼吐得泡泡 哈哈
                         }
                          } 
                          
 

第二个题

               function sum(){
                //arguments[1,2,3,4,5,6,7,8,9];
                  var result = 0;
                   for( var i = 0; i <arguments.length; i++){
                    result +=arguments[i];
                             }
                      console.log(result);
                           }
                         sum (1,2,3,4,5,6,7,8,9)
                         
                         
                         

第三个题 定义一组函数,输入数字,逆转并输出汉字形式

            //首先 先实现数字的逆转 输入123 返回321
             function reverse(){
                var num =window.prompt('input');//输入框
                var stt = ""; //容器
                    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 "弎";     
                               }
                              }
                           reverse();
                           

第四个题

                           function jc(n) {
                               if (n == 1) {
                                   return 1;
                                     }
                              return n * jc (n -1);
                              document.write();
                                    }
                           document.write( jc(5));    
                               

第五个题

           // 1、1、2、3、5、8、13、21、34、

           // f  s  t  
           // 1  1  2  3  5  8
           //       f  s  t        
            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); 
            }