JavaScript 函数参数详解61


在 JavaScript 中,函数是第一类对象,这意味着它们可以像其他变量一样传递给其他函数或作为值返回。函数参数是传递给函数的数据,可以用来执行操作或计算。

参数类型

JavaScript 函数参数可以是任意类型的数据,包括:

数字
字符串
布尔值
对象
数组
函数

参数传递方式

JavaScript 采用传值调用机制,这意味着传递给函数的参数的值会复制到函数内部的局部变量中。这就意味着对函数内部局部变量的修改不会影响函数外的原始值。

形参和实参

在函数定义中声明的变量称为形参(formal parameter),而传递给函数调用的值称为实参(actual parameter)。例如,以下函数定义了一个形参为 `num` 的函数:```javascript
function square(num) {
return num * num;
}
```

当调用此函数时,我们可以传递一个实参,例如:```javascript
const result = square(5);
```

在函数内部,形参 `num` 将被赋值为实参 `5`,然后函数返回 `25`。

默认参数值

JavaScript 允许为函数参数指定默认值。如果在函数调用时未提供实参,则将使用默认值。例如,以下函数定义了一个具有默认参数值 `10` 的形参:```javascript
function sum(a, b = 10) {
return a + b;
}
```

当调用此函数时,我们可以选择传递一个或两个实参:

如果只传递一个实参,则默认值为 `10`
如果传递两个实参,则使用提供的实参值

```javascript
(sum(5)); // 15
(sum(5, 7)); // 12
```

剩余参数(Rest Parameters)

JavaScript 引入了剩余参数(又称扩展运算符),允许函数接收任意数量的参数,并将其存储在数组中。剩余参数必须放在参数列表的最后。例如,以下函数使用剩余参数收集所有参数:```javascript
function sumAll(...numbers) {
let sum = 0;
for (const num of numbers) {
sum += num;
}
return sum;
}
```

当调用此函数时,我们可以传递任意数量的实参:
```javascript
(sumAll(1, 2, 3)); // 6
(sumAll(5, 10, 15, 20)); // 50
```

扩展运算符(Spread Operator)

扩展运算符(又称展开运算符)可以将数组或对象展开为单独的参数。这在传递数组或对象作为实参非常有用。例如,以下函数使用扩展运算符将数组展开为三个单独的参数:```javascript
function maxOfThree(a, b, c) {
return (a, b, c);
}
const numbers = [5, 10, 15];
(maxOfThree(...numbers)); // 15
```

扩展运算符还可以用于将对象属性展开为单独的变量:```javascript
const student = {
name: 'John Doe',
age: 25
};
function printInfo({name, age}) {
(`Name: ${name}, Age: ${age}`);
}
printInfo(student);
```

JavaScript 函数参数是传递数据和控制函数行为的关键。通过了解参数类型、传递方式、默认值、剩余参数和扩展运算符,您可以有效地使用 JavaScript 函数并编写可重用和灵活的代码。

2024-12-12


上一篇:JavaScript 中的继承:全面指南

下一篇:JavaScript 函数参数:全面指南