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-2026 CODEPRJ.COM