js函数的形参与实参详解

585 阅读2分钟
  • 这周是我在逆战班学习js的第二周,下面对js函数的形参与实参进行总结

形参

  • 函数定义时写在小括号里面的内容,即;函数n里面的a; 
    • 在函数里面使用的变量,变量的值由调用函数时的实参决定;

实参

  • 函数调用时写在小括号里面的内容,即函数n里面的1;
    • 调用函数时给形参进行赋值;

n(1){}

当有多个参数时

形参(接收)

    1. 一个函数定义形参,理论上可以写无限个;
    2. 多个形参之间用逗号分隔;
    3. 不建议写太多;

实参(发送)

    1. 一个函数调用时, 理论上可以写无限个;
    2. 多个实参之间用逗号分隔;
    3. 不建议写太多,和形参一一对应;

参数的储存

  • 当我们定义一个函数的时候,会在内存空间中开辟一块空间,也就是我们所说的一个 “盒子”,存放一段代码,所有的形参, 都是在这个内存空间中的一个一个的变量;

参数的个数关系

  1. 实参和形参一样多:形参和实参按照从左到右的顺序一一对应;
  2. 实参多:在函数内部没有形参接收这个传递进来的值,不能直接使用;
  3. 形参多:在函数内部,多余出来的形参,没有对应的实参赋值,函数使用这个多余的形参时,就是undefined,是一个有声明但是没有赋值的状态;

案例

  1. 封装一个函数, 两个数字求和,在控制台打印;

function fx(n1, n2) {
    var result = n1 + n2;
    console.log(result);
}
fx(10, 20);
  1. 每个函数自带一个arguments变量, 不需要定义,可直接使用,称为伪数组或者类数组;
  2. arguments变量是一个数据的集合,保存了所有的实参,传递一个实参, 集合里面就有一个数据;

arguments 的使用

  1. 具有length属性,属性值代表arguments的长度,即数据个数;
  2. arguments里将所有的实参按照顺序排列,排列顺序称为索引或者下标(官方名称),就是数据的序号;
    1. 索引或者下标是从0开始的;
    2. 按照+1的顺序递增;
  3. 从arguments里面获取数据的方法;
    1. arguments[索引序号],表示获取arguments里面该索引的数据;
    2. 注意:从 0 开始;

案例

  1. 任意数据求和;

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);