JavaScript引用類型變量和值類型變量的坑

這是我踩過的大坑,印象很深,希望大家以后繞過此坑。

引用變量(對象,數(shù)組這些玩意)是內(nèi)存中的堆區(qū),值變量(String,Number,Boolean這些玩意)是內(nèi)存中的棧區(qū)。

什么是堆棧?不說抽象的,看的也累,舉個例子:

棧就是你自己的東西,你想咋折騰都行

堆就是你借別人的東西用,弄壞了,別人會來干你,哈哈就這么理解吧~

比如 let a = 1; let b = a; b就是你自己的了,想干嘛干嘛,不影響a,因為數(shù)字是值變量

但是數(shù)組就不行了 ,let a = [1, 2, 3], let b = a, 但是這個b是別人的東西,不能亂來,不信你 b.push(4)試試,你發(fā)現(xiàn)a就變成[1,2,3,4]了,寫完你就會發(fā)現(xiàn)地上多了一塊舒膚佳。嘿嘿~~

當(dāng)然也有解決辦法,想讓數(shù)組變成自己的,用slice()方法就可以了,let b = a.slice();就ok,b隨便你玩,不怕身后一陣涼。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容