在ES6中,解构赋值允许你设置默认值。这在你想要确保某个变量在被解构时有一个特定的值(如果原始对象中没有该属性或者该属性的值是undefined
)时非常有用。
以下是一些设置默认值的示例:
1. 对象的解构赋值
const obj = { a: 1, b: 2 };
const { a = 3, b = 4, c = 5 } = obj;
console.log(a); // 输出 1,因为 obj 中有 a 属性,且其值不是 undefined
console.log(b); // 输出 2,因为 obj 中有 b 属性,且其值不是 undefined
console.log(c); // 输出 5,因为 obj 中没有 c 属性,所以使用默认值
2. 数组的解构赋值
数组的解构赋值也可以设置默认值,但需要注意的是,数组的默认值是基于位置的,而不是基于名称的。
const arr = [1, 2];
const [first = 3, second = 4, third = 5] = arr;
console.log(first); // 输出 1,因为 arr 的第一个元素是 1
console.log(second); // 输出 2,因为 arr 的第二个元素是 2
console.log(third); // 输出 5,因为 arr 中没有第三个元素,所以使用默认值
在这些示例中,如果原始对象(或数组)中的属性(或元素)是undefined
,或者根本不存在,那么解构赋值将使用你提供的默认值。