推荐答案
在解构赋值中,默认值是在解构的变量未定义(undefined)时使用的值。可以通过在解构模式中为变量指定默认值来确保变量始终有一个值。
const { a = 10, b = 20 } = { a: 1 };
console.log(a); // 输出: 1
console.log(b); // 输出: 20在这个例子中,a 的值为 1,因为对象中有 a 属性。而 b 的值为 20,因为对象中没有 b 属性,所以使用了默认值。
本题详细解读
解构赋值的默认值
解构赋值允许我们从数组或对象中提取值,并将它们赋值给变量。在解构赋值中,可以为变量指定默认值,以防止解构的值为 undefined。
对象解构赋值的默认值
在对象解构赋值中,如果解构的变量在对象中不存在或值为 undefined,则会使用默认值。
const { x = 5, y = 10 } = { x: 1 };
console.log(x); // 输出: 1
console.log(y); // 输出: 10在这个例子中,x 的值为 1,因为对象中有 x 属性。而 y 的值为 10,因为对象中没有 y 属性,所以使用了默认值。
数组解构赋值的默认值
在数组解构赋值中,如果解构的变量在数组中不存在或值为 undefined,则会使用默认值。
const [a = 1, b = 2] = [10]; console.log(a); // 输出: 10 console.log(b); // 输出: 2
在这个例子中,a 的值为 10,因为数组中有第一个元素。而 b 的值为 2,因为数组中没有第二个元素,所以使用了默认值。
默认值的优先级
默认值只在解构的值为 undefined 时生效。如果解构的值为 null 或其他假值(如 0、false、'' 等),则不会使用默认值。
const { x = 5 } = { x: null };
console.log(x); // 输出: null
const { y = 5 } = { y: 0 };
console.log(y); // 输出: 0在这个例子中,x 的值为 null,y 的值为 0,尽管它们都是假值,但不会触发默认值的使用。