函数的默认值与动态参数arguments的总结
Posted dhnblog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数的默认值与动态参数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>
(未完)
以上是关于函数的默认值与动态参数arguments的总结的主要内容,如果未能解决你的问题,请参考以下文章