JavaScript 函数参数学习笔记
函数是 JavaScript 中最重要的语言结构之一,它们为我们提供了将代码分解为可重用模块的方法。函数可以接受零到多个参数,使得代码变得更加灵活和可扩展。
命名参数 vs. 匿名参数
在 JavaScript 中,函数参数可以是命名参数或匿名参数。当我们定义一个函数时,我们可以为其指定一组命名参数,这些参数可以在函数体中使用。例如:
Copy Codefunction greet(name) {
console.log("Hello, " + name + "!");
}
在这里,name
是这个函数的一个命名参数。我们可以通过调用 greet
来使用这个参数:
Copy Codegreet("Alice"); // 输出:Hello, Alice!
相反,如果我们没有定义任何命名参数,则该函数只会接受匿名参数。这种情况下,我们需要基于参数的位置来区分它们。例如:
Copy Codefunction add(a, b) {
return a + b;
}
在这里,a
和 b
都是匿名参数。我们可以通过调用 add
来使用这些参数:
Copy Codeadd(1, 2); // 输出:3
默认参数
在 JavaScript ES6 中,我们可以为函数参数指定默认值。当调用函数时,如果没有传递某个参数,那么它将使用指定的默认值作为参数。例如:
Copy Codefunction greet(name = "world") {
console.log("Hello, " + name + "!");
}
在这里,name
的默认值是字符串 "world"
。如果我们调用 greet
,但没有传递任何参数,那么它将输出 "Hello, world!"
:
Copy Codegreet(); // 输出:Hello, world!
我们还可以为任意参数指定默认值:
Copy Codefunction add(a, b = 0) {
return a + b;
}
在这里,b
的默认值为 0
。如果我们调用 add
,但只传递了一个参数,那么它将返回这个参数加上默认值 0
的结果:
Copy Codeadd(1); // 输出:1
剩余参数
除了命名参数和匿名参数之外,我们还可以使用剩余参数来处理函数中的变长参数。剩余参数是以三个连续点(...
)开头的一个参数,它会捕获所有未指定的参数并将它们放入一个数组中。例如:
Copy Codefunction sum(...numbers) {
let result = 0;
for (const number of numbers) {
result += number;
}
return result;
}
在这里,numbers
是一个剩余参数,它将捕获所有传递给 sum
函数的参数。我们可以通过调用 sum
来使用它:
Copy Codesum(1, 2, 3); // 输出:6
sum(4, 5, 6, 7, 8); // 输出:30
总结
JavaScript 中的函数参数可以是命名参数或匿名参数。我们可以为参数指定默认值,使得代码变得更加灵活和可扩展。我们还可以使用剩余参数来处理函数中的变长参数。