解构赋值
声明和赋值都放在一起了。
解构:表示符号左边和右边解构类似
数组的位置必须相同
对象解构时名字必须相同
let [,age] = ['qq',9];
console.log(age);//9
let {length} = ['qq',9];//数组的长度属性无法用属性解构的形式来对应,数组本身就是一个对象,length为数组对象的一个属性,所以就用对象的形式来解构
console.log(length);//2
---------------------------------------------------------------------------------
let {name, age, default:d} ={name:'qsqsq', age:10, default:'XXX'};//对象的属性与系统关键字重名了,用:来给该属性换个别名,访问时就用别名访问。
console.log(d);//XXX
---------------------------------------------------------------------------------
let [,{address:[,a]}]= [
{name:'aaaaa'},
{age:9,address:[1,2,3,4]}
]
console.log(a)//2 一一对应的关系
let [,{address:[,a]}, hobby='ABC']= [
{name:'aaaaa'},
{age:9,address:[1,2,3,4]}
]
console.log(hobby)//ABC 如果想设置某个属性的默认值,必须采用=号的方式
---------------------------------------------------------------------------------
function ajax({url = new Error('url without'), type = 'get', data= XXX}){
console.log(url,type,data);// /test get Object { }
}
ajax({
url:'/test',
type:'get',
data:{}
})
---------------------------------------------------------------------------------
//解构的应用
function test(){
return [1,2,3];
}
let [a,b,c] = test();
console.log(a, b,c);
---------------------------------------------------------------------------------