JS在函数参数传递上和PHP有点不同。PHP中的形式参数数量要匹配,而JS要灵活得多,可以随意传递参数。如果实际参数少于或多于形式参数,则不会报告错误。
实际参数比形式参数多不会报告错误
函数say(a){ alert(a);}说说(‘琼台博客’‘WEB科技博客’);执行结果
让我们看看形式参数比实际参数的结果
函数say (a,b){ alert(a的值是' a ' nb的值是' b ');}say('琼台博客');执行结果
a对应第一个参数“琼台博客”,B没有对应的参数,因此其值未定义
参数对象
事实上,有时当程序设计复杂时,我们并不指定参数的数量,而是灵活使用。函数中有一个参数数组,专用于存储参数数组。通过论据,我们可以知道论据的数量和价值。
函数arg(){var str='总共传递了' arguments.length '参数 n ';for(var I=0;长度;I ){ str='第一个'(i 1)参数值:'参数[I]' n ';} alert(str);}arg('琼台博客',' PHP博客',' WEB技术博客');执行结果
在上面的例子中,我们定义了函数arg,但没有给它分配形式参数,而是使用arguments对象来接收实际参数,这非常灵活。
例如,我们可以用它来计算一组数字中最小的数字,不管有多少个数字。比如下面的代码:
函数arg(){var tmp=0,str=' infor(var I=0;长度;I){ for(var g=0;长度;g){ if(arguments[g]arguments[I]){ tmp=arguments[g];} }str=参数[i]',';}警报中的最小值(str。substr (0,字符串。length-1)'是' tmp ';}arg(200,100,59,3500);执行四个数字200、100、59和3500来比较结果
我们正在加两个数字,分别是5和60
函数arg(){var tmp=0,str=' infor(var I=0;长度;I){ for(var g=0;长度;g){ if(arguments[g]arguments[I]){ tmp=arguments[g];} }str=参数[i]',';}警报中的最小值(str。substr (0,字符串。length-1)'是' tmp ';}arg(200,100,59,3500,5,60);执行200、100、59、3500、5和60的比较结果
根据两次运算的结果,我们发现无论传入多少个数字,都可以正确比较结果。参数通常用于参数数量不确定的地方。例如,在上面的例子中,您可以传递5个数字进行比较,或者传递100个数字进行比较。