数组的解构赋值
let arr = [1, 2, 3]
let [a, b, c] = arr
console.log(a, b, c); //1,2,3
对象的解构赋值
let arr2 = {
name: '小明',
age: 20
}
let { name, age } = arr2
console.log(name, age);//小明,20
字符串的解构赋值
let arr3 = 'heelo'
let [a, b, c, d, e] = arr3
console.log(a, b, c, d, e);//h e e l o
解构赋值是惰性的,有对应的值时,初始值就不会被执行
function foo() {
console.log('你好');
}
let [k = foo()] = [1]
console.log(k);//1 foo()不执行
function foo() {
console.log('你好');
}
let [k = foo()] = []
console.log(k);//undefind foo()执行