# 函数参数的默认值
# ES6函数的默认值
在ES6中,我们可以为函数参数设置默认值,这是一个非常有用的特性。它允许我们在函数定义时为参数指定一个默认值,如果调用函数时没有提供该参数或者提供的值为undefined,则会使用这个默认值。
基本语法如下:
function functionName(param1 = defaultValue1, param2 = defaultValue2) {
// 函数体
}
使用默认参数值可以使函数更加灵活和健壮,减少了处理未定义参数的额外代码。
# 默认值的生效条件
默认值只在以下两种情况下生效:
- 不传递参数
- 明确地传递 undefined 作为参数
示例:
function greet(name = 'Guest') {
console.log(`Hello, ${name}!`);
}
greet(); // 输出: Hello, Guest!
greet(undefined); // 输出: Hello, Guest!
greet('Alice'); // 输出: Hello, Alice!
greet(null); // 输出: Hello, null!
# 使用默认值的技巧
- 避免使用 null: 传递 null 不会触发默认值,可能导致意外结果。
- 使用函数作为默认值: 默认值可以是函数调用,允许动态生成默认值。
- 参数间的依赖: 后面的参数可以使用前面参数的值作为默认值。
- 解构赋值结合使用: 在解构赋值中也可以使用默认值,增加灵活性。
示例:
// 使用函数作为默认值
function getDefaultValue() {
return new Date().toISOString();
}
function logTime(time = getDefaultValue()) {
console.log(time);
}
// 参数间的依赖
function multiply(a, b = a) {
return a * b;
}
// 解构赋值结合使用
function printUserInfo({ name = 'Anonymous', age = 18 } = {}) {
console.log(`Name: ${name}, Age: ${age}`);
}
这些技巧可以帮助你更灵活地使用默认值,提高代码的可读性和健壮性。