Rumah > Artikel > hujung hadapan web > Nota kajian Javascript: Atribut traversal dan length_Pengetahuan asas tatasusunan
Walaupun tatasusunan ialah objek dalam Javascript, ia tidak disyorkan untuk digunakan untuk dalam gelung untuk merentasi tatasusunan Sebenarnya, terdapat banyak sebab untuk menghalang kita daripada menggunakan dalam gelung pada tatasusunan.
Kerana gelung for in akan menghitung semua sifat pada rantai prototaip, dan satu-satunya cara untuk menghentikannya ialah menggunakan hasOwnProperty untuk menilai, ini akan menjadi lebih perlahan daripada gelung biasa.
Melintasi
Untuk prestasi terbaik, cara terbaik untuk mengulang tatasusunan ialah menggunakan klasik untuk gelung.
Helah tambahan di sini ialah untuk cache panjang tatasusunan melalui l = list.length.
Walaupun sifat panjang ditakrifkan pada tatasusunan itu sendiri, masih terdapat overhed pada setiap lelaran gelung. Walaupun enjin Javascript terbaharu mungkin mempunyai pengoptimuman prestasi untuk situasi ini, tiada jaminan bahawa kod Javascript anda akan sentiasa berjalan dalam penyemak imbas ini.
Malah, gelung dengan panjang tanpa cache adalah lebih perlahan daripada gelung dengan panjang cache.
atribut panjang
Walaupun sifat length hanya mengembalikan bilangan elemen dalam tatasusunan melalui kaedah getter, tatasusunan boleh dipotong melalui kaedah penetap.
Menetapkan nombor yang lebih kecil kepada sifat panjang akan memotong tatasusunan, manakala menetapkan nombor yang lebih besar tidak akan memotong tatasusunan.
Ringkasan
Untuk prestasi optimum, disyorkan untuk menggunakan gelung for dan bukannya gelung untuk dalam dan cache sifat panjang.
Terdapat juga objek tatasusunan yang tidak mempunyai sebarang kaedah, hanya satu panjang atribut unik. Objek rentetan mempunyai kaedah panjang~~