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