Rumah > hujung hadapan web > tutorial js > Adakah Pesanan Harta Gelung `untuk...dalam` JavaScript Selaras Merentas Pelayar?

Adakah Pesanan Harta Gelung `untuk...dalam` JavaScript Selaras Merentas Pelayar?

Linda Hamilton
Lepaskan: 2024-12-11 17:34:10
asal
412 orang telah melayarinya

Is JavaScript's `for...in` Loop Property Order Consistent Across Browsers?

Gelung Untuk-Dalam dan Susunan Harta Objek dalam JavaScript

Apabila melelaran melalui sifat objek menggunakan gelung "untuk...dalam" , adalah wajar untuk tertanya-tanya sama ada susunan traversal sepadan dengan perintah pengisytiharan asal.

Menurut John Resign, pelaksanaan JavaScript yang lalu dalam penyemak imbas utama melaksanakan gelung ini dalam susunan definisi harta. Walau bagaimanapun, Chrome mempunyai pengecualian dengan nama sifat bukan berangka ditarik mengikut urutan mendahului sifat berangka pertama.

Hari ini, gelagat ini berbeza-beza antara penyemak imbas. Penyemak imbas moden mematuhi susunan definisi, kecuali Chrome dan Opera, yang terus merombak sifat bukan berangka. Ini terpakai pada kedua-dua gelung "untuk...dalam" dan kaedah "Object.keys".

Contoh menggambarkan ini:

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

Output dalam Chrome dan Opera:

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

Output dalam penyemak imbas lain:

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

Walaupun kebolehubahan ini, adalah penting untuk diperhatikan bahawa pelaksanaan penyemak imbas boleh berubah, dan bergantung pada pemeliharaan ketertiban boleh berisiko.

Oleh itu, jika susunan sifat adalah penting dalam aplikasi anda, adalah bijak untuk menggunakan tatasusunan kerana ia menyediakan susunan yang boleh diramal dan stabil mekanisme.

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