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