淺拷貝直接賦值賦值的是記憶體位址,賦值之後兩個變數使用的相同內容,兩個變數中儲存的是相同的記憶體位址,乙個操作,另乙個也會改變。
arr1 變數中 儲存的是 陣列的 記憶體位址
var arr1 = [1,2,3,4,5];
將arr1 儲存的記憶體位址,賦值給arr2,兩個變數儲存的是相同的記憶體位址
var arr2 = arr1;
arr1操作,陣列,arr2也會改變
因為arr1和arr2,同時儲存的是相同的資料,操作的也是同乙個陣列
同理,arr2,運算元組,arr1也會改變
arr1[0] = '北京';
console.log(arr2);
輸出結果為北京,2,3,4,5
深拷貝迴圈遍歷,獲取引用資料型別中,儲存的每乙個資料資訊賦值到新的變數中,賦值之後 兩個變數,沒有任何關係。
var arr3 = ['北京','上海','廣州','重慶','天津'];
迴圈遍歷,獲取arr3中的所有資料數值,賦值到新的陣列中
var arr4 = ;
通過迴圈,生成arr3的所有索引下標
for(var i = 0 ; i <= arr3.length-1 ; i++)
console.log(arr4);
arr3[0] = '武漢';
console.log(arr3 , arr4);
輸出結果為:arr3:武漢,上海,廣州,重慶,天津。
arr4:北京,上海,廣州,重慶,天津。
引用資料型別的淺拷貝與深拷貝
基本的資料型別可以分為兩類 基本資料型別 值型別 數字 字串 布林值 undefined null 引用資料型別 引用型別 函式 陣列 物件 只有複雜資料型別 引用資料型別 才有淺拷貝與深拷貝 基本資料型別資料傳遞後,在改變源資料後面不會改變 基本資料型別存的是值 引用資料型別存的是位址 引用資料型...
深拷貝 淺拷貝 資料型別
1 不可變型別 包括數值 字串 元組 不可變指的是不能改變引用,只能放置乙個新的引用 2 可變型別 包括列表和字典 可變指的是當向列表或字典裡面增刪改時,引用沒有受到影響 進一步解釋可變與不可變,是指記憶體中的那塊內容 value 是否可以被改變。如果是不可變型別,在對物件本身操作的時候,必須在記憶...
集合資料型別,拷貝,深拷貝,淺拷貝
用 中間值用,隔開,且集合中元素排列是無序的,而且如果有相同元素會只保留乙個 1.必須掌握 1.長度len set 1 print len set 1 52.成員運算in和not in 表示判斷集合裡面是否有某個值 set 1 print 1 in set 1 true print 100 in s...