书写方法
1.左右结构一致
2.声明与赋值在一句话内
数组解构赋值
let [a,b,c]=[1,2,3]
console.log(a,b,c) //1,2,3
json解构赋值
let {a,b,c}={a:12,b:13,c:14}
console.log(a,b,c) //12,13,14
粒度控制
let [json,arr,[a,b]]=[{e:5,f:7},[2,13,4],[90,91]]
console.log(json,arr,a,b) //{e:5,f:7} [2,13,4] 90 91
特殊情况
只有当y对应的值===undefined时,y才会取默认值
let [x,y='b']=['a']
//y:'b'
let [x,y='b']=['a',null]
//y:'null'
let [x,y='b']=['a',void,0]
//y:'b'(void (0)===undifined返回true)
let [x,y='b']=['a',0]
//y:0
默认参数
function(z,f='a'){console.log(f)}
foo('n',null)//'a'
解构赋值的作用
- 获取对象的属性/方法
或者
书写方法
1.左右结构一致
2.声明与赋值在一句话内
数组解构赋值
let [a,b,c]=[1,2,3]
console.log(a,b,c) //1,2,3
json解构赋值
let {a,b,c}={a:12,b:13,c:14}
console.log(a,b,c) //12,13,14
粒度控制
let [json,arr,[a,b]]=[{e:5,f:7},[2,13,4],[90,91]]
console.log(json,arr,a,b) //{e:5,f:7} [2,13,4] 90 91
特殊情况
只有当y对应的值===undefined时,y才会取默认值
let [x,y='b']=['a']
//y:'b'
let [x,y='b']=['a',null]
//y:'null'
let [x,y='b']=['a',void,0]
//y:'b'(void (0)===undifined返回true)
let [x,y='b']=['a',0]
//y:0
默认参数
function(z,f='a'){console.log(f)}
foo('n',null)//'a'
解构赋值的作用
- 获取对象的属性/方法
或者
等效于