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); }
Output dalam Chrome dan Opera:
"1" "2" "34" "first" "second"
Output dalam penyemak imbas lain:
"first" "second" "1" "2" "34"
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!