Rumah  >  Artikel  >  hujung hadapan web  >  Mengapakah \"0 dalam [1,2]\" Kembali Benar dalam JavaScript?

Mengapakah \"0 dalam [1,2]\" Kembali Benar dalam JavaScript?

Barbara Streisand
Barbara Streisandasal
2024-10-26 18:20:03607semak imbas

Why Does

Memahami Operator "in" dalam JavaScript

Operator "in" dalam JavaScript biasanya digunakan untuk menyemak sama ada sifat atau kunci wujud dalam sesuatu objek. Walau bagaimanapun, tingkah laku pelik berlaku apabila menguji kehadiran "0" dalam tatasusunan.

Masalah: Keputusan Benar Tidak Dijangka

Dalam tatasusunan tanpa nilai "0 ", ungkapan berikut dinilai kepada benar:

var x = [1,2];
0 in x;

Hasil ini nampaknya bertentangan dengan intuisi kerana "0" tidak kelihatan dalam tatasusunan.

Penyelesaian: Pengindeksan, Bukan Perbandingan Nilai

Pengendali "dalam" dalam JavaScript tidak menyemak kewujudan nilai tertentu. Sebaliknya, ia menyemak sama ada harta atau kunci wujud. Dalam kes tatasusunan, indeks dianggap sifat.

Oleh itu, dalam contoh di atas, "0" merujuk kepada indeks tatasusunan. Memandangkan tatasusunan diindeks sifar, indeks "0" adalah sah dan wujud, maka hasil yang benar.

Contoh Intuitif

Untuk menggambarkan konsep ini dengan lebih lanjut:

var x = [1,2];
1 in x; // true (index 1 exists)
2 in x; // false (index 2 does not exist)

Ringkasan Gelagat

Pengendali "dalam" dalam JavaScript digunakan terutamanya untuk menyemak kewujudan sifat atau kunci dalam objek, termasuk tatasusunan. Apabila digunakan pada tatasusunan, ia menyemak kewujudan indeks yang sah, bukan untuk nilai tertentu yang disimpan pada indeks tersebut.

Atas ialah kandungan terperinci Mengapakah \"0 dalam [1,2]\" Kembali Benar dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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