Memahami Perbezaan Antara untuk...dalam dan untuk...Penyata
Dalam alam gelung JavaScript, untuk.. .dalam dan untuk...kenyataan sering menimbulkan kekeliruan. Walaupun for...in telah menjadi asas untuk mengulang sifat, for...of muncul dalam ES6 untuk menyasarkan nilai secara khusus. Artikel ini menyelidiki perbezaan utama antara kedua-dua binaan ini.
untuk...dalam: Merentasi Nama Harta
Untuk...dalam gelung berulang ke atas harta terbilang nama objek. Seperti yang ditunjukkan dalam contoh, ia berjaya mencatatkan "0", "1", "2", dan "foo", yang mewakili kunci indeks tatasusunan dan kunci "foo" objek tatasusunan.
untuk...daripada: Mengekstrak Nilai Harta
Sebaliknya, untuk...daripada menggunakan objek khusus iterator untuk melintasi nilai yang dijana oleh iterator tersebut. Dalam contoh, iterator tatasusunan hanya menghasilkan nilai dalam tatasusunan, iaitu "3", "5", dan "7". Tingkah laku ini berpunca daripada fakta bahawa iterator direka bentuk untuk memberi tumpuan semata-mata pada nilai.
Bukan Lelaran Sifat Bukan Indeks
Terutamanya, untuk... tidak berulang ke atas sifat bukan indeks. Dalam contoh, sifat "foo", yang mengandungi nilai "hello", tidak dilog. Ini kerana lelaran tatasusunan hanya menghasilkan nilai yang dikaitkan dengan indeks tatasusunan.
Contoh: Lelaran Berfokuskan Nilai
Untuk menggambarkan, gelung berikut hendaklah mencatatkan nilai tatasusunan serta nilai sifat "foo", tetapi ia hanya mencatat tatasusunan nilai:
for (var i of arr) { console.log(i); // logs "3", "5", "7" }
Tingkah laku ini mengukuhkan pemahaman bahawa untuk...daripada dibina bertujuan untuk mengulang nilai, tidak termasuk sifat bukan indeks.
Atas ialah kandungan terperinci Apakah Perbezaan Utama Antara Gelung `for...in` dan `for...of` JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!