Rumah > Soal Jawab > teks badan
P粉1871608832023-08-14 11:43:19
Mereka berbeza.
const arr2 = [...arr1]; // Line A
LINE A, salin (salinan cetek) setiap elemen tatasusunan ke dalam arr2
.
const arr2 = arr1; // Line B
LINE B, tetapkan rujukan arr1
kepada arr1
的引用赋值给arr2
。基本上,arr1
和arr2
. Pada asasnya, arr1
dan
const arr = [1, 2, 3]; const arrA = [...arr]; const arrB = arr; console.log(arr === arrA); // False console.log(arr === arrB); // True arrA[0] = 9; console.log(arr[0] === arrA[0]); // False console.log(arr); // [1,2,3] console.log(arrA); // [9,2,3] arrB[0] = 9; console.log(arr[0] === arrB[0]); // True console.log(arr); // [9,2,3] console.log(arrB); // [9,2,3]
Salinan cetek hanya menyalin item peringkat pertama. Sebagai contoh, jika tatasusunan mengandungi tatasusunan lain, tatasusunan dalam akan disalin, tetapi unsur tatasusunan dalam tidak disalin. Oleh itu, elemen dalam tidak disalin. Lihat contoh kod di bawah: 🎜
const arr = [1, 2, [5, 6]]; const arrA = [...arr]; const arrB = arr; console.log(arr === arrA); // False console.log(arr === arrB); // True arrA[0] = 8; arrA[2][0] = 9; console.log(arr[2][0] === arrA[2][0]); // True console.log(arr); // [1, 2, [9, 6]] console.log(arrA); // [8, 2, [9, 6]] arrB[0] = 8; arrB[2][0] = 9; console.log(arr[2][0] === arrB[2][0]); // True console.log(arr); // [8, 2, [9, 6]] console.log(arrB); // [8, 2, [9, 6]]