您好,登錄后才能下訂單哦!
小編給大家分享一下JavaScript中為什么要使用延展操作符,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
延展操作符首次于ES6中引入,并很快成為最受歡迎的功能之一。盡管事實上延展操作符只適用于數(shù)組,但仍有建議提出可以將其功能擴展到對象。最終ES9中引入了此功能。
你可能會想:“JavaScript就已經(jīng)能夠滿足需求了,為什么還要使用延展操作符?”我們先來介紹下不變性。
牛津詞典:不變性-隨著時間的推移不變或無法改變。
作為軟件開發(fā)的術(shù)語,不可變指狀態(tài)不能隨時間變化的值。實際上,通常使用的大多數(shù)值(原始值,如字符串,整數(shù)等)都是不可變的。
然而,JavaScript中非常特殊的一點是,其中的數(shù)組和對象實際上是可變的。這可能成為一個大問題。
我們有一個變量Squirtle(杰尼龜)。因為剛剛訪問了神奇寶貝中心,這只杰尼龜?shù)腍P值為100。
由于還想要另一只杰尼龜,因此聲明變量為anotherSquirtle,將初始Squirtle指定為它的值。一場苦戰(zhàn)后,另一只杰尼龜被擊敗了。因此,訪問另一只杰尼龜?shù)腍P值并將其更改為0。下一步,檢查初始Squirtle,輸入console.log和...
等等,什么?初始Squirtle的HP降至0。這怎么可能?可憐的杰尼龜遭遇了什么?原來是發(fā)生了JavaScript變異。接下來將為你解釋其中緣由。
當(dāng)創(chuàng)建anotherSquirtle變量并將初始Squirtle指定為其值時,實際是給初始Squirtle對象的內(nèi)存位置分配了一個引用。這是因為JavaScript數(shù)組和對象是引用數(shù)據(jù)類型。與基本數(shù)據(jù)類型不同,引用數(shù)據(jù)類型指向存儲實際對象/數(shù)組的內(nèi)存地址。
為了便于理解,可以將引用數(shù)據(jù)類型想象為全局變量的指針。更改引用數(shù)據(jù)類型的值實際上是在更改全局變量的值。
這意味著當(dāng)將anotherSquirtle的HP值更改為0時,實際是將存儲在內(nèi)存中的Squirtle對象的HP值更改為0。這就是為什么mySquirtle的HP值為0-因為mySquirtle是對存儲在內(nèi)存中的對象的引用,可以通過anotherSquirtle變量被改變。
以上是“JavaScript中為什么要使用延展操作符”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。