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


在开发过程中我们经常要用到一些临时变量对数据进行一些特殊处理,比如我们要在临时变量用完后主动释放内存,所以当临时变量数量较多时,整体代码会变得冗余。

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

a.push(1)
// dosomeThing

let a = null
let b = null
let c = null

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

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

a.push(1)

console.log(b)
// 1

b = c = null

可以发现变量    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)
// []

a = b = c = null

- END -


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM