Ada dua cara untuk melintasi array di JS
Salinan kode adalah sebagai berikut:
var array = ['a']
// Standar untuk Loop
untuk (var i = 1; i <array.length; i ++) {
waspada (array [i])
}
// loop foreach
untuk (var i di array) {
waspada (array [i])
}
Dalam keadaan normal, dua cara di atas melintasi array adalah sama. Pertama -tama, mari kita bicara tentang perbedaan pertama antara keduanya
I dalam standar untuk loop adalah tipe angka, yang mewakili subskrip array, tetapi i di loop foreach mewakili kunci array adalah tipe string, karena segala sesuatu dalam js adalah objek. Coba Peringatan (TypeOf i); Perbedaan ini adalah masalah kecil. Sekarang saya menambahkan kode berikut, dan hasil eksekusi di atas akan berbeda.
Salinan kode adalah sebagai berikut:
// Array asli JS diperpanjang
Array.prototype.test = function ()
}
Cobalah untuk melihat apa yang dijalankan kode di atas. Kami menemukan bahwa standar untuk loop masih benar -benar melingkar pada array, tetapi pada saat ini loop foreach dicetak dari metode pengujian yang baru saja saya tulis. Ini adalah perbedaan terbesar antara untuk dan foreach traversing array. Jika kita menggunakan foreach untuk melintasi array dalam proyek, misalkan ada hari ketika seseorang secara tidak sengaja memperluas kelas array asli JS, atau memperkenalkan kerangka JS eksternal untuk memperluas array asli. Kemudian muncul pertanyaan.
Dua poin lagi untuk disarankan
1. Jangan gunakan untuk melintasi array, dan menggunakan standar untuk array variabel loop dalam penyatuan (kami tidak dapat menjamin apakah JS yang kami perkenalkan akan menggunakan prototipe untuk memperluas array asli)
2. Jika Anda ingin memperpanjang kelas asli JS, jangan gunakan prototipe