什么是解构赋值?
- 解构赋值就是提取数组和对象中的值,对变量进行赋值,这种方法就称为解构赋值
- 但是他需要注意的就是定义和赋值必须要放在一起,否则就会给你报错,取不到数据,解构赋值就是对js的赋值运算符的扩展,
- 它的好处就是让我们能够快速的能从复杂的对象中取出我们想要的数据
// 传统
// var arr = [1,2,3]; //把数组的值分别赋给a,b,c几个变量
// var a = arr[0];
// var b = arr[1];
// var c = arr[2];
// console.log(a); //1
// console.log(b); //2
// console.log(c); //3
// 变量的解构赋值
// var [a,b,c] = [1,2,3]; //把数组的值分别赋给a,b,c几个变量
// console.log(a); //1
// console.log(b); //2
// console.log(c); //3
//(1).数组的解构赋值
//1.数组结构赋值可以嵌套的
// var [ a,b ,[ c,d ] ] = [ 1,2 ,[ 3,4 ] ]
// console.log(c); //3
// console.log(d); //4
//2.赋值不成功,变量的值为undefined
// var [a,b,c] = [1,2];
// console.log(a); //1
// console.log(b); //2
// console.log(c); //undefined
//3.可以设置默认值
// var [a,b,c=3] = [1,2];
// console.log(a); //1
// console.log(b); //2
// console.log(c); //3
//4.但是如果右边的对应变量值不为undefined,则会覆盖默认值
// var [a,b,c=3] = [1,2,4];
// console.log(a); //1
// console.log(b); //2
// console.log(c); //4
//(2).对象的解构赋值
//1.对象解构赋值也可以嵌套
// var {a:{b}} = {"a":{"b":1}};
// console.log(b); //1
//2.可以设置默认值
// var {a,b=2} = {"a":1}
// console.log(b); //2
//3.赋值不成功,也跟数组的一样变量的值为undefined
// var {a,b,c} = {"a":1,"b":2};
// console.log(a); //1
// console.log(b); //2
// console.log(c); //undefined
//4.对象解构赋值不受属性的排列次序影响(但是数组会有影响)
// var {a,b,c} = {"a":1,"c":3,"b":2};
// console.log(a); //1
// console.log(b); //2
// console.log(c); //3
//数组的话会有影响s
// var [a,b,c] = [1,3,2]; //把数组的值分别赋给a,b,c几个变量
// console.log(a); //1
// console.log(b); //3
// console.log(c); //2
//(3).字符串的解构赋值
// var [a,b,c,d,e,f,g,h] = "字符串的解构赋值";
// console.log(a); //字
// console.log(b); //符
// console.log(c); //串
// console.log(d); //的
// console.log(e); //解
// console.log(f); //构
// console.log(g); //赋
// console.log(h); //值
// 这些都是最常用的一些方法
//接下来是解构赋值的实际用途
//1.交换变量的值
function str(){
var a = 1;
var b = 2;
var [a,b] = [b,a]; // a=2 b=1
console.log(a)
console.log(b)
}
str();