JavaScript菜鸟教程

JavaScript 对象

JavaScript 函数

JS HTML DOM

JS 浏览器BOM

AJAX 菜鸟教程

JavaScript 参考手册

JavaScript 函数参数

一个函数可以具有一个或多个参数,这些参数将由调用代码提供并可以在函数内部使用。

JavaScript是一种动态类型脚本语言,因此函数参数可以具有任何数据类型的值。

函数参数和实参

函数参数是函数定义中列出的名称

函数实参是传递给函数(并由函数接收)的实际

函数参数

在定义函数以在运行时接受输入值时,可以指定参数。

函数参数在函数定义的括号()中列出。

// 定义函数
function greet(name) {
   document.write("Hello, " + name);
}

// 以“Seagull”作为参数调用greet函数
greet("Seagull");
测试看看‹/›

您可以根据需要定义任意数量的参数。

// 定义函数
function add(num1, num2, num3) {
   var total = num1 + num2 + num3;
   document.write(total);
}
 
// 调用函数
add(5, 20, 10); // 输出: 35
add(-5, 8, 7);  // 输出: 10
测试看看‹/›

但是,对于您指定的每个参数,在调用函数时都需要将相应的参数传递给该函数,否则其值将变得不确定。

//定义函数
function showFullname(fName, lName) {
   document.write(fName + " " + lName);
}
 
// 调用函数
showFullname("Kavy", "Mark"); // 输出: Kavy Mark
showFullname("John"); // 输出: John undefined
测试看看‹/›

默认参数

如果传递未定义,默认函数参数允许使用默认值初始化命名参数。

这意味着,如果在调用函数时未提供任何参数来使用这些函数,则将使用这些默认参数值。

function myFunc(a, b = 20) {
  // 如果未传递或未定义参数b,则b为20
  return a + b;
}

myFunc(10, 5); // 返回 15
myFunc(10);// 返回 30
测试看看‹/›

Arguments 对象

JavaScript中的所有函数默认都可以使用arguments 对象。参数对象包括每个参数的值。

arguments对象是一个类似于object的数组。您可以使用类似于数组的索引来访问其值。

下面的示例从传递的参数中返回最大数目:

getMax(9, 15, 61, 3);

function getMax() {
  let max = 0;
  for(let i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
   max = arguments[i];
}
  }
  return max;
}
测试看看‹/›

以下示例返回所有传递的参数的总和:

getSum(9, 15, 61, 3);

function getSum() {
  let sum = 0;
  for(let i in arguments) {
  sum += arguments[i];
  }
  return sum;
}
测试看看‹/›

即使函数不包含任何参数,arguments对象也是有效的。

arguments对象是类似于对象的数组,但是,它不支持数组方法。

reset参数

reset参数语法允许我们的参数数目不定传递给一个函数为一个数组。

当您想将参数传递给函数但不知道需要多少个参数时,这特别有用。

通过在命名参数前面加上rest运算符(...)(即三个点)来指定rest参数。

function sum(...arr) {
return arr.reduce((previous, current) => {
return previous + current;
});
}

sum(1, 2);  // 返回 3
sum(1, 2, 3, 4);// 返回 10
sum(1, 2, 3, 4, 5, 6);  // 返回 21
测试看看‹/›

参数按值传递

在函数调用中,参数是函数的参数。

JavaScript参数由传递:该函数仅知道值,而不是参数的位置。

如果函数更改了参数的值,则不会更改参数的原始值。

对参数的更改在函数外部不可见(反映)。

对象按引用传递

在JavaScript中,对象引用是值。

因此,对象的行为就像通过引用传递一样

如果函数更改了对象属性,它将更改原始值。

对对象属性的更改在函数外部可见(反映)。