JS中的arguments对象介绍

arguments对象是一个伪数组

arguments并不是一个数组,只是与数组相似, 除了拥有length属性,数组的所有属性和方法都不具备

arguments对象的使用

使用特殊对象 arguments时无需明确指出参数名,就可以访问它们.
例如:在write函数中,如果需要访问其第一个参数 words1 ,不用指明其具体参数名,用 arguments[0] 就可以访问这个值(该函数第一个参数的值)。

function write() {
  if (arguments[0] == "hello") {
    return;
  }   
  alert(arguments[0]);
}
用arguments对象检测参数个数

可以用 arguments 对象检测函数的参数个数,引用属性 arguments.length 即可

function judjenum() {
  console.log(arguments.length);
}

judjenum("string", 45); 
// 返回 2 
judjenum(); 
// 返回 0
judjenum(12); 
// 返回 1
  • 注意点:
    在其它语言中实参个数必须和形参个数一致,但是JavaScript中没有函数签名的概念,实参个数和形参个数可以不相等,实参若超过形参个数,超过的都会以 undefined 传递给函数
用 arguments 对象判断传递给函数的参数个数

用 arguments 对象判断传递给函数的参数个数,即:模拟函数重载

function doAdd() {
  if(arguments.length == 1) {
    alert(arguments[0] + 5);
  } else if(arguments.length == 2) {
    alert(arguments[0] + arguments[1]);
  }
}
doAdd(10);	
//输出 "15"
doAdd(40, 20);	
//输出 "60"
用 arguments 对象比较形参与实参个数是否一致
function sum(num1,num2){
        console.log(arguments.length); 
        // 返回 2 
        console.log(sum.length); 
        // 返回 2 
        console.log(arguments.length == sum.length); 
        // 返回 true
    }
    sum(10,20);
用 arguments.callee属性可判断/返回当前函数

callee是arguments对象的一个属性,该属性是一个指针, 指向拥有这个arguments对象的函数

function sum(num1,num2){
    console.log(arguments.callee);
}
sum(10,20);

运行结果:
运行结果
【部分内容摘录自:ECMAScript arguments 对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值