美文网首页es6 语法学习
ES6基础教程(第二节)——解构赋值

ES6基础教程(第二节)——解构赋值

作者: 多平方 | 来源:发表于2019-06-17 22:36 被阅读0次

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

在有参数时候会用参数,没有参数时候就使用默认参数值。

今天的量有点大,代码也是直接文本写的,不过逻辑还是很清晰,希望能和更多的人交流。

微信公众号

相关文章

网友评论

    本文标题:ES6基础教程(第二节)——解构赋值

    本文链接:https://www.haomeiwen.com/subject/inqxnqtx.html