JavaScript 函数参数

  • JavaScript函数参数

    JavaScript函数不会对参数值(参数)执行任何检查。
  • 函数形参和实参

    在本教程的前面,您了解到函数可以包含形参:
    function functionName(形参1, 形参2, 形参3) {
      // 代码执行块
    }
    函数形参是函数定义中列出的名称。函数实参是传递给函数(并由函数接收)的实际值。
  • 参数规则

    JavaScript函数定义不指定参数的数据类型。JavaScript函数不对传递的参数执行类型检查。JavaScript函数不检查收到的参数数量。
  • 参数默认值

    如果调用函数时缺少参数(小于声明的值),则缺少的值将设置为: undefined有时这是可以接受的,但有时最好为参数指定一个默认值:
    function myFunction(x, y) {
      if (y === undefined) {
        y = 0;
      } 
    }
    尝试一下
    ECMAScript 2015允许函数调用中的默认参数:
    function (a=1, b=1) { // 函数代码 }
  • arguments对象

    JavaScript函数有一个名为arguments对象的内置对象。参数对象包含调用(调用)函数时使用的参数数组。这样您就可以简单地使用函数来查找(例如)数字列表中的最高值:
    x = findMax(1, 123, 500, 115, 44, 88);
    
    function findMax() {
      var i;
      var max = -Infinity;
      for (i = 0; i < arguments.length; i++) {
        if (arguments[i] > max) {
          max = arguments[i];
        }
      }
      return max;
    }
    
    尝试一下
    或者创建一个函数来汇总所有输入值:
    x = sumAll(1, 123, 500, 115, 44, 88);
    
    function sumAll() {
      var i;
      var sum = 0;
      for (i = 0; i < arguments.length; i++) {
        sum += arguments[i];
      }
      return sum;
    }
    
    尝试一下
    如果使用过多的参数调用函数(超过声明的参数),则可以使用arguments对象来访问这些参数。
  • 参数通过值传递

    函数调用中的参数是函数的实参。JavaScript参数按值传递:函数只能知道值,而不是参数的位置。如果函数更改参数的值,则不会更改参数的原始值。参数的更改在函数外部不可见
  • 对象通过引用传递

    在JavaScript中,对象引用是值。因此,对象的行为就像它们通过引用传递:如果函数更改了对象属性,则会更改原始值。对象属性的更改在函数外部可见