js中的內存與以及潛拷貝和深度拷貝的概念

es5的6種數據類型:五種簡單數據類型:numbr string boolean null undefined; 一種複雜數據類型object;es5

js將數據內存分爲代碼區域和數據區域;對象

數據區域分爲兩個模塊:棧內存(stack)和堆內存(heap);內存

簡單數據類型儲存在棧內存中,棧內存像是一個又一個的小箱子;彼此獨立,依次排列;咱們開啓盒子就會得到到簡單數據類型的數值(64位的數字,16位的字符);而棧內儲存複雜數據類型則儲存的是指向堆內存的地址;堆內存用來儲存複雜數據類型; 堆內存和棧內存的關係就是複雜數據類型的引用;string

淺拷貝和深度拷貝的本質區別:改變賦值後的數據的值,給他賦值的數據的值會不會改變;若是不會改變,就是深度複製!object

/很顯然簡單數據類型的拷貝都屬於深度複製,而對於複雜數據類型的直接拷貝都屬於淺拷貝 ;由於給對象直接賦值,就會順着棧裏面的地址,更改堆裏面得內容,從而更菜全部指向該堆的棧/數據類型

相關文章
相關標籤/搜索