推荐答案
在解构赋值中,默认值是在解构的变量未定义(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
,尽管它们都是假值,但不会触发默认值的使用。