Rumah > hujung hadapan web > tutorial js > Mengapa Pemeriksaan Kesaksamaan Gagal untuk Tatasusunan dalam JavaScript?

Mengapa Pemeriksaan Kesaksamaan Gagal untuk Tatasusunan dalam JavaScript?

Linda Hamilton
Lepaskan: 2024-11-09 20:14:02
asal
1037 orang telah melayarinya

Why Do Equality Checks Fail for Arrays in JavaScript?

Semakan Kesaksamaan Gagal untuk Tatasusunan: Teka-teki JavaScript

Tatasusunan dalam JavaScript, tidak seperti primitif seperti rentetan dan nombor, ialah jenis rujukan. Ini bermakna ia disimpan dalam ingatan sebagai objek dan bukannya nilai mentah. Akibatnya, semakan kesaksamaan menggunakan operator kesaksamaan == akan gagal untuk tatasusunan, kerana ia hanya membandingkan rujukan objek.

Untuk memahami perkara ini, mari kita periksa contoh mudah:

[1, 2] == [1, 2]; // false
Salin selepas log masuk

Walaupun tatasusunan mengandungi elemen yang sama, ia dianggap sebagai objek yang berbeza. Operator kesamaan hanya akan kembali benar jika pembolehubah merujuk objek tatasusunan yang sama dalam ingatan.

Untuk membandingkan kandungan tatasusunan dan bukannya rujukan, anda perlu menggunakan pendekatan yang lebih mantap. Satu kaedah sedemikian ialah melintasi kedua-dua tatasusunan, membandingkan setiap nilai elemen. Walau bagaimanapun, ini boleh menjadi tidak cekap untuk tatasusunan besar.

Satu lagi pendekatan biasa ialah menukar kedua-dua tatasusunan kepada rentetan dan kemudian membandingkan rentetan yang terhasil:

[1, 2].toString() === [1, 2].toString(); // true
Salin selepas log masuk

Walaupun teknik ini berfungsi, ia sepatutnya' t digunakan untuk objek tersuai, kerana susunan sifat boleh berbeza-beza antara keadaan, yang membawa kepada kesamarataan yang salah semak.

Sebaliknya, untuk objek tersuai atau struktur data yang kompleks, adalah disyorkan untuk melaksanakan fungsi kesaksamaan tersuai yang secara eksplisit membandingkan semua sifat yang berkaitan. Ini menyediakan cara yang boleh dipercayai dan boleh diselenggara untuk menyemak kesaksamaan bagi jenis data bukan primitif.

Atas ialah kandungan terperinci Mengapa Pemeriksaan Kesaksamaan Gagal untuk Tatasusunan dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan