Rumah > hujung hadapan web > tutorial js > Adakah JavaScript `untuk...dalam` Menjamin Pesanan Harta?

Adakah JavaScript `untuk...dalam` Menjamin Pesanan Harta?

Mary-Kate Olsen
Lepaskan: 2024-12-11 06:09:11
asal
448 orang telah melayarinya

Does JavaScript's `for...in` Loop Guarantee Property Order?

Tertib Elemen Gelung dalam "untuk (... dalam ...)" Penyata

"untuk (... dalam . ..)" gelung dalam JavaScript digunakan untuk mengulangi sifat objek. Timbul persoalan sama ada sifat ini diproses mengikut susunan ia diisytiharkan.

Menurut John Resig, semua penyemak imbas utama mengekalkan susunan definisi sifat objek semasa lelaran gelung. Walau bagaimanapun, Chrome dan Opera mempamerkan pengecualian hanya untuk nama sifat bukan berangka. Sifat ini diproses lebih awal daripada sifat berangka pertama dalam kedua-dua penyemak imbas.

Untuk memudahkan:

  • Sifat dengan nama berangka diproses mengikut urutan.
  • Sifat dengan bukan -nama berangka diproses sebelum sifat berangka dalam Chrome dan Opera.

Contohnya:

var obj = {
  "first": "first",
  "2": "2",
  "34": "34",
  "1": "1",
  "second": "second"
};
for (var i in obj) { console.log(i); };
Salin selepas log masuk

Dalam kebanyakan penyemak imbas, outputnya ialah:

1
2
34
first
second
Salin selepas log masuk
Salin selepas log masuk

Dalam Chrome dan Opera, outputnya ialah :

1
2
34
first
second
Salin selepas log masuk
Salin selepas log masuk

Walaupun konsistensi semasa dalam tingkah laku penyemak imbas, spesifikasi ECMAScript membiarkan mekanik gelung tidak ditentukan. Oleh itu, bergantung pada pesanan semasa tidak disyorkan.

Amalan Terbaik:

Jika pesanan adalah penting untuk aplikasi anda, anda dinasihatkan untuk menggunakan tatasusunan dan bukannya objek dengan gelung "untuk (... dalam ...)". Tatasusunan mengekalkan susunan unsur dengan lebih dipercayai.

Atas ialah kandungan terperinci Adakah JavaScript `untuk...dalam` Menjamin Pesanan Harta?. 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