Perbezaan antara peruntukan dan membongkar tatasusunan
P粉287254588
P粉287254588 2023-08-13 16:31:45
0
1
370

Jadi saya mempunyai kod JavaScript ini, apakah perbezaan antara Talian A dan Talian B

const arr1 = [1,2,3,4,5] const arr2 = [...arr1]; // Baris A const arr2 = arr1; // Baris B

Jadi saya ingin tahu sama ada kedua-dua kaedah tugasan ini adalah sama atau terdapat beberapa perbezaan

P粉287254588
P粉287254588

membalas semua (1)
P粉187160883

Mereka berbeza.

const arr2 = [...arr1]; // Line A

LINE A, salin (salinan cetek) setiap elemen tatasusunan ke dalamarr2.

const arr2 = arr1; // Line B

LINE B, tetapkan rujukanarr1kepadaarr1的引用赋值给arr2。基本上,arr1arr2. Pada asasnya,arr1dan

ialah tatasusunan yang sama.

Contoh

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

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]]
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!