es6在给对象赋值方面运用了一个新功能,称为解构赋值,以下是从数组的解构赋值,对象的解构赋值,字符串的结构赋值,以及解构赋值的使用这四大方面进行讲解。
数组的解构赋值:数组具有一个特点就是有顺序关系,数组的结构赋值讲究的就是一一对应,来个例子:
var [a,b,c]=[1,2,3]
console.log(a)
console.log(b)
console.log(c)
打印出的值为1,2,3;
嵌套赋值
var [a,b,[c1,c2]]=[1,2,[3,4]]
console.log(a)
console.log(b)
console.log(c1)
console.log(c2)
此时打印出的值为1,2,3,4;
进行了一一对应。
不完全赋值
var [a,b,c]=[1,2]
console.log(a)
console.log(b)
console.log(c)
打印出来的值为1,2,undefined,相当于定义了c这个变量,但是没有对其进行赋值,所以值为undefined。
设定默认值赋值
var [a,b,c=3]=[1,2]
console.log(a)
console.log(b)
console.log(c)
此时打印就是1,2,3;
当我们带了默认值时候,如果没有重新赋值,默认值就会带下去,所以此时的值为1,2,3。
对象的结构赋值:对象是不带顺序属性的,只能根据属性名来进行查找对应的值
var {a,b,c}={"a":1,"c":3,"b":2}
console.log(a)
console.log(b)
console.log(c)
此时打印的数值就是1,2,3;
如果查找不到对应的属性设值为undefined
{a}={"b":1}
console.log(a)
此时打印的值就为undefined。
对象的解构赋值嵌套
var {a:{b}}={"a":{"b":1}}
console.log(b)
对于内嵌对象,也和数组类似,此时打印的值为1;
设定默认值赋值
var {a,b=2}={"a":1}
console.log(a)
console.log(b)
这是携带默认值的处理方式,打印出来是1,2;
字符串的解构赋值
var [a,b,c,d,e,f]="各个都是大佬"
console.log(a)
console.log(b)
console.log(c)
console.log(d)
console.log(e)
console.log(f)
这个会惊奇的发现打印出来是:
各
个
都
是
大
佬
对的,你没有看错,每个字会为一个元素,被单独打印出来。
剩下的美好时光我们来了解构赋值的用途:
互换值:
var a=1;
var b=2;
[a,b]=[b,a]
console.log(a)
console.log(b)
此时打印出啦的是2,1;因为a和b的值已经进行了互换;再也不用像以前一样多定义一个变量,然后作为传递值进行传递了。
定义函数参数
function func({a,b,c}){
console.log("a:"+a)
console.log("b:"+b)
console.log("c:"+c)
}
func({a:1,b:2,c:3,d:4,e:5})
函数只会拿取需要的参数,不需要的参数将会被忽略,这样就避免了参数的污染。
为函数设定默认值
function func({a:"1"}){
console.log("a:"+a)
}
func()
func({a:"2"})
第一个打印出来的值是1
第二个打印出来的是2
在有参数时候会用参数,没有参数时候就使用默认参数值。
今天的量有点大,代码也是直接文本写的,不过逻辑还是很清晰,希望能和更多的人交流。
微信公众号
网友评论