📅  最后修改于: 2023-12-03 14:51:43.981000             🧑  作者: Mango
在 JavaScript 中,函数参数可以设置默认值,如果没有传入参数,则会使用默认值。
function greet(name) {
name = name || "Guest";
console.log("Hello, " + name + "!");
}
greet(); // 输出: Hello, Guest!
greet("John"); // 输出: Hello, John!
在上面的例子中,如果 name
没有传入参数,则会将其默认值设置为 "Guest"。
这种方法很容易理解,但是它有一个缺点,如果传入的参数值是 false
、0
、""
、null
、undefined
或 NaN
,则会认为参数没有传入进来,从而使用默认值。
ES6 引入了默认参数的语法,使得我们可以直接在函数定义时设置默认值。
function greet(name = "Guest") {
console.log("Hello, " + name + "!");
}
greet(); // 输出: Hello, Guest!
greet("John"); // 输出: Hello, John!
在使用 ES6 定义函数参数时,我们可以给参数设置默认值,这样在函数调用时如果没有传入参数,则使用默认值。
ES6 的这种语法方式更加优美,并且会正确识别参数值为 false
、0
、""
、null
、undefined
或 NaN
的情况。
除了使用以上两种方式之外,我们还可以使用剩余参数来实现默认值的设置。
function greet(greeting, ...names) {
greeting = greeting || "Hello";
names = names.length === 0 ? ["Guest"] : names;
console.log(greeting + ", " + names.join(", ") + "!");
}
greet(); // 输出: Hello, Guest!
greet("Hi"); // 输出: Hi, Guest!
greet("Hi", "John", "Doe"); // 输出: Hi, John, Doe!
在上面的例子中,我们使用了剩余参数来接收所有除了第一个参数以外的参数,然后根据参数个数是否为 0 来设置默认值。
以上三种方式都可以为 JavaScript 函数参数设置默认值,我们可以根据具体的业务场景来选择合适的方式。使用 ES6 的语法方式会更加优美和安全,是建议使用的方式。