ES6:使用解构赋值仅用一行定义多个相同的数组,且指向堆不同(解构赋值)

在开发过程中我们经常会用到空间去替代时间复杂度的写法,所以当临时变量数量较多时,整体代码会变得冗余。

let a = []
let b = []
let c = []

a.push(1)
// dosomeThing

于是可以使用一些方法解决这一问题:

let a, b, c
a = b = c = []

a.push(1)

console.log(b)
// 1

然而发现变量    b    c  的指向的堆相同,导致其中一个变量发生改变另外两个变量也会发生一样的改变。

我们需要更好的方法来达到这一目的,使自己的代码不会那么 noob。

 “ ES6:解构赋值 ” 

解构赋值

解构赋值是对赋值运算符的扩展。

他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。

在代码书写上简洁且易读,语义更加清晰明了;也方便了复杂对象中数据字段获取。

runoob上的例子:

let [a, b, c] = [1, 2, 3]

a++

console.log(a, b, c)
// 223

由此我们可以知道,通过解构赋值,我们可以让数组中的索引指向对应的索引,通过索引一个个为变量  a    b    c  赋值,因此等式右边每个元素所指向的存储空间都是不同的。

let [a, b, c] = [[], [], []]

a.push(1)
// doSomething

console.log(b)
// []

- END -

posted @ 2021-03-30 14:12  97z4moon  阅读(596)  评论(2)    收藏  举报
Title