# 函数参数的默认值

作者: 多叉树;转载须注明出处

# 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}`);
}

这些技巧可以帮助你更灵活地使用默认值,提高代码的可读性和健壮性。