ECMAScript 6(ES6)为 JavaScript 中的函数引入了许多改进,其中之一是支持默认参数值。这个特性使得函数定义变得更加灵活和强大,允许在函数参数不足时提供备选值。
默认参数值基础
1. 基本语法
在 ES6 之前,函数的默认参数通常需要在函数体内部通过逻辑来指定。ES6 允许在函数声明时直接为参数赋予默认值。
function greet(name = "Guest") {
return `Hello, ${name}!`;
}
console.log(greet("Alice")); // 输出: Hello, Alice!
console.log(greet()); // 输出: Hello, Guest!
2. 与解构赋值结合
默认参数可以与解构赋值相结合,进一步提高函数的灵活性。
function createPerson({ name = "Anonymous", age = 0 } = {}) {
return { name, age };
}
console.log(createPerson({ name: "Alice", age: 25 })); // 输出: { name: "Alice", age: 25 }
console.log(createPerson()); // 输出: { name: "Anonymous", age: 0 }
使用场景
- 参数备选值:当函数参数可能缺失时,提供一个合理的默认值。
- 简化函数调用:减少在函数调用时需要传递的参数数量,特别是对于那些大多数情况下都是固定值的参数。
- 提高函数的可读性:默认参数值直观地展示了参数的预期类型和默认行为。
注意事项
- 默认参数是在函数调用时评估的,而非在函数声明时。
- 默认参数可以是任意表达式,包括函数调用,但应注意避免产生副作用。
- 当传递
undefined作为参数时,会触发默认值;传递null或其他假值时则不会。
默认参数值是 ES6 中对函数功能的一个重要扩展。它不仅使函数定义更加清晰,也减少了函数体内部的冗余代码。在接下来的文章中,我们将继续探讨 ES6 中其他关于函数的新特性和方法。