JavaScript -- 函数arguments 、形参、实参之间的关系

本文详细介绍了JavaScript中arguments对象、形参和实参的概念及它们之间的关系。arguments是一个包含所有实参的类数组对象,其长度由实参决定,并能同步到对应的形参。函数形参的默认值会影响arguments与形参的映射关系。通过arguments.length可以获取实参个数,而函数的length属性则表示形参的个数。注意,修改形参的值不会影响arguments,反之亦然。
摘要由CSDN通过智能技术生成

一、arguments

  • arguments :是一个雷数组对象,包含调用函数时传入的所有参数(即实参)。
  • arguments 对象 只有以function关键字 定义函数时才有。
  • arguments 对象包含一个属性 callee - - 指向arguments对象所在的函数。

二、形参

  • 声明函数时所有参数,称为形参。

三、实参

  • 调用函数时传递的所有参数,称为实参。

四、例子讲解

arguments 与 实参 与 形参

  • arguments 是包含所有 实参 的类数组对象。
  • arguments 对象的值 会自动同步 到对应的形参,如:arguments[0] 对应 a,arguments[1] 对应 b
function test(a,b,c){
  console.log('a,b,c:',a,b,c);
  for(let item of arguments){
    console.log(item);  
  }
  
}
test(1,2);
test(1,2,3,4);

结果

、需注意的地方

  • 首先 arguments 对象的 长度由实参 决定,
  • 相对应的arguments 与 形参才会建立映射关系,如:c 的变化不会影响到argument,而 a 会
  • 建立映射关系不是访问同一块内存,只是保持同步变化而已
function test(a,b,c){
  a = 9;
  c = 4;
  console.log('a,b,c:',a,b,c);
  for(let item of arguments){
    console.log(item);  
  }  
}
test(1,2);

结果:
结果图片

、获取函数形参的个数和实参的个数

function one(a,b,c){
  console.log("arguments个数:",arguments.length);
}
one(); // 不传参
console.log("形参的个数:",one.length);//分别输出:0 3

one(1,2);
console.log("形参的个数:",one.length); // 分别输出:2 3

、当函数给默认值的时候,arguments 与形参的映射关系不存在

function one(a,b=1,c){
  console.log("arguments个数:",arguments.length);
}
one();
console.log("形参的个数:",one.length);  // 输出 0 1

function one(a,b=1,c){
  arguments[1] = 6
  console.log("b:",b); // 2
}
one(1,2);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值