函数的默认值与动态参数arguments的总结

在js函数与作用域,了解函数基本概念中,我们发现当函数的实参有一个没有上传的时候,对应的形参time展示的值就是undefined,如下代码所示:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <title>函数的默认值问题</title>
 7     <script>
 8         function myshelf(num,time)
 9         {//默认值time=>undefined
10             for(var a=1;a<=num;a++)
11             {
12             console.log(time+'点第'+a+''+'好好学习,天天向上');
13             }
14         }
15         var time=7;
16         myshelf(10) ;// 有一个实参没有传;
17         var time=7;
18         myshelf(10,12) ;// var time=12;
19     </script>
20 </head>
21 <body>
22 </body>
23 </html>

 怎么解决函数默认值undefined的情况,可以用if条件语句,或者逻辑或.用方式一,含义是如果time的默认值等于undefined,那么此时time值等于7,否则不执行此语句;方式二:time=time或者time=8,前者是如果time=time,那么此时就传入了实参,不执行后面的语句或者是time=8,说明此时没有传值进来,那么函数此时time的默认值为8

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <title>函数默认值undefined解决2种方式</title>
 7     <script>
 8         function myshelf(num,time)
 9         {//默认值time=>undefined
10 
11         // if(time==undefined)
12         //     time=7;    //方式一:if条件语句
13 
14             time=time||8; //方式二:逻辑或
15 
16             for(var a=1;a<=num;a++)
17             {
18             console.log(time+'点第'+a+''+'好好学习,天天向上');
19             }
20         }
21         var time=7;
22         myshelf(10) ;
23         var time=7;
24         myshelf(10,12) ;
25     </script>
26 </head>
27 <body>
28 </body>
29 </html>

 函数的动态参数是什么,比我说,我想要下面这些数字全部相加,但是默认情况下,只是相加2个数字,那么这些数字能不能相加了,当然是可以的,怎么办了?这时候就用到了我们的动态数组arguments

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <title>动态参数arguments</title>
 7     <script>
 8         function add(x,y){//加法 函数得定义
 9         //[1,2,4,5,23]
10             return x+y;
11         }
12         var rs=add(1,2,4,5,23); //函数得调用
13         console.log('1+2 4,5,23='+rs);
14         var rs=add(3,4);
15         console.log('3+4='+rs);
16     </script>
17 </head>
18 <body>
19 </body>
20 </html>

(未完)

猜你喜欢

转载自www.cnblogs.com/dhnblog/p/12378357.html