JavaScript 函数传参310


在 JavaScript 中,函数参数是传递给函数的值。函数可以通过其参数来访问和操作这些值。

传递值类型的参数

当以值类型作为参数传递时,JavaScript 会将参数值本身传递给函数。这意味着函数对参数值的任何更改都不会影响函数外部的原始值。```js
function add(a, b) {
a += b;
}
let x = 10;
let y = 5;
add(x, y);
(x); // 输出:10
```

在上面的示例中,add 函数将值 10 和 5 作为参数接收。函数内部,它将参数 a 赋值为 15。然而,这是对函数局部变量的更改,不会影响函数外部的原始变量 x。

传递引用类型的参数

当以引用类型作为参数传递时,JavaScript 将传递对原始对象的引用。这意味着函数对参数对象的任何更改都会修改函数外部的原始对象。```js
function updateObject(obj) {
= "John Doe";
}
let person = {
name: "Jane Doe",
age: 25
};
updateObject(person);
(); // 输出:John Doe
```

在上面的示例中,updateObject 函数将对 person 对象的引用作为参数接收。函数内部,它将对象属性 name 更改为 "John Doe"。由于传递的是对象的引用,因此函数外部的原始 person 对象也会受到更改的影响。

传递参数的规则

传递函数参数时,应遵循以下规则:
参数列表中的第一个参数是第一个传递的参数,依此类推。
传递的参数数量可以少于函数声明中定义的参数数量。未传递的参数将设置为 undefined。
传递的参数数量可以多于函数声明中定义的参数数量。多余的参数将被忽略。
参数类型可以与函数声明中定义的参数类型不同。JavaScript 会自动进行类型转换。

参数的默认值

JavaScript 允许为函数参数设置默认值。默认值在函数调用时没有指定参数值时使用。```js
function greet(name = "Guest") {
("Hello, " + name + "!");
}
greet(); // 输出:Hello, Guest!
greet("John Doe"); // 输出:Hello, John Doe!
```

在上面的示例中,greet 函数将 name 参数的默认值设置为 "Guest"。当调用函数时,如果没有指定 name 参数,则将使用默认值 "Guest"。

剩余参数

剩余参数用于将多余的参数收集到一个数组中。剩余参数必须放在参数列表的最后。```js
function sum(...numbers) {
let total = 0;
for (let number of numbers) {
total += number;
}
return total;
}
(sum(1, 2, 3, 4, 5)); // 输出:15
```

在上面的示例中,sum 函数使用剩余参数 numbers 收集所有传递的参数。然后,它循环遍历 numbers 数组,将每个数字相加并返回结果。

函数参数是函数的重要组成部分,用于向函数传递数据。JavaScript 支持传递值类型和引用类型参数,并允许设置默认值和收集剩余参数。通过理解函数参数,开发人员可以创建更灵活、更可重用的代码。

2025-01-15


上一篇:JavaScript 对象赋值揭秘

下一篇:Javascript 中的 if...else 语句