ECMA函数参数arguments的使用

       ECMAScript函数的参数与大多数其他语言中函数的参数有所不同。ECMAScript函数不介意传递进来多少个参数,也不在一乎传进来参数是什么数据类型。也就是说,即便你定义的函数只接收两个参数,在调用这个函数时也未必一定要传递两个参数。之所以会这样,原因是ECMAScript中的参数在内部是用一个数组来表示的。函数接收到的始终都是这个数组,而不关心数组中包含哪些参数(如果有参数的话)。如果这个数组中不包含任何元素,无所谓;如果包含多个元素,也没有问题,实际上,在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给函数的每一个参数。    其实,arguments对象只是与数组类似(它并不是Array的实例)。因为可以使用方括号语法访问它的每一个元素〔即第一个元素是arguments[0],第二个元素是argumetns[1]。以此类推),使用length属性来确定传递进来多少个参数。
例:
function doadd(){
    if(arguments.length==1){
       alert(arguments[0]+10);
    }
    else if(arguments.length==2){
       alert(arguments[0]+arguments[1]);
    }
}
doadd(10);//20
doadd(30,20); //50
    关于参数还要记住最后一点;没有传递值的命名参数将自动被赋予undefined值。这跟定义了变量但又没有初始化一样。  
另外arguments的值永远与对应命名参数值保存同步: 
1.
function a(a1,a2){
    arguments[0]=1;
alert(arguments[0]+arguments[1]);
}
a(2,3); //输出4
2.
function a(a1,a2){
   arguments[0]=1;
    a1=5;
alert(a1+arguments[1]);
}
a(2,3);//输出8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值