2020-06-29 13:55:47
JavaScript 函数可以通过多种方式接收多个参数,包括位置参数、命名参数、可变参数(rest 参数)和默认参数。以下是详细说明和示例:
1. 位置参数每个参数按其在参数列表中的位置对应索引(从 0 开始)。调用时需按顺序传递参数。
function sum(a, b) { return a + b;}console.log(sum(1, 2)); // 输出: 32. 命名参数(通过对象解构模拟)JavaScript 本身不支持直接命名参数(如 Python 的 func(name=value)),但可通过解构对象实现类似效果:
function greet({ name, message }) { console.log(`${message}, ${name}!`);}greet({ name: "John", message: "Hello" }); // 输出: "Hello, John!"3. 可变参数(Rest 参数)使用 ... 语法接收任意数量的参数,必须放在参数列表末尾:
function sumAll(...numbers) { return numbers.reduce((total, num) => total + num, 0);}console.log(sumAll(1, 2, 3, 4, 5)); // 输出: 154. 默认参数为参数设置默认值,未传递时自动使用默认值。默认参数应放在参数列表末尾(非强制,但建议):
function greet(name = "World", message = "Hello") { console.log(`${message}, ${name}!`);}greet(); // 输出: "Hello, World!"greet("John"); // 输出: "Hello, John!"greet("Alice", "Hi"); // 输出: "Hi, Alice!"5. 解构赋值传递数组/对象通过解构将数组或对象的属性拆分为多个参数:
// 数组解构function printCoordinates([x, y]) { console.log(`X: ${x}, Y: ${y}`);}printCoordinates([10, 20]); // 输出: "X: 10, Y: 20"// 对象解构function printUser({ name, age }) { console.log(`Name: ${name}, Age: ${age}`);}printUser({ name: "Alice", age: 25 }); // 输出: "Name: Alice, Age: 25"注意事项通过以上方法,JavaScript 可以灵活处理多参数场景,适应不同需求。