先赋值看看:
<
script>
let {abc:test1,def:test2}
={abc:
"first",def:
"second"}
console.
log(test1)
console.
log(test2)
</
script>
简化写法:
<
script>
let {abc,def}
={abc:
"first",def:
"second"}
console.
log(abc)
console.
log(def)
</
script>
在对象解构赋值中,顺序是没有影响的,我们修改上面的内容:
<
script>
let {def,abc}
={abc:
"first",def:
"second"}
console.
log(abc)
console.
log(def)
</
script>
两次返回的结果都是相同的,没有区别;
在数组解构中我们有一种情况是:左边变量的数目大于右边值的数目,那么没有解构成功的会返回undefined;
在对象结构中也是一样的:没有找到对应的值的对象属性会返回undefined;
<
script>
let {sos,def}
={abc:
"first",def:
"second"}
console.
log(sos)
console.
log(def)
</
script>
对象的解构赋值也是可以设置默认值的,和数组类似;