- 这周是我在逆战班学习js的第二周,下面对js函数的形参与实参进行总结
形参
- 函数定义时写在小括号里面的内容,即;函数n里面的a;
- 在函数里面使用的变量,变量的值由调用函数时的实参决定;
实参
- 函数调用时写在小括号里面的内容,即函数n里面的1;
n(1){}
当有多个参数时
形参(接收)
- 一个函数定义形参,理论上可以写无限个;
- 多个形参之间用逗号分隔;
- 不建议写太多;
实参(发送)
- 一个函数调用时, 理论上可以写无限个;
- 多个实参之间用逗号分隔;
- 不建议写太多,和形参一一对应;
参数的储存
- 当我们定义一个函数的时候,会在内存空间中开辟一块空间,也就是我们所说的一个 “盒子”,存放一段代码,所有的形参, 都是在这个内存空间中的一个一个的变量;
参数的个数关系
- 实参和形参一样多:形参和实参按照从左到右的顺序一一对应;
- 实参多:在函数内部没有形参接收这个传递进来的值,不能直接使用;
- 形参多:在函数内部,多余出来的形参,没有对应的实参赋值,函数使用这个多余的形参时,就是undefined,是一个有声明但是没有赋值的状态;
案例
function fx(n1, n2) {
var result = n1 + n2;
console.log(result);
}
fx(10, 20);
- 每个函数自带一个arguments变量, 不需要定义,可直接使用,称为伪数组或者类数组;
- arguments变量是一个数据的集合,保存了所有的实参,传递一个实参, 集合里面就有一个数据;
arguments 的使用
- 具有length属性,属性值代表arguments的长度,即数据个数;
- arguments里将所有的实参按照顺序排列,排列顺序称为索引或者下标(官方名称),就是数据的序号;
- 索引或者下标是从0开始的;
- 按照+1的顺序递增;
- 从arguments里面获取数据的方法;
- arguments[索引序号],表示获取arguments里面该索引的数据;
- 注意:从 0 开始;
案例
function fx() {
console.log(arguments);
var result = 0;
for (var i = 0; i < arguments.length; i++) {
result += arguments[i];
}
console.log(result);
}
fx(10, 20);