Gelung "untuk…dalam" dalam JavaScript berulang pada sifat objek. Walau bagaimanapun, susunan gelung merentasi sifat telah menjadi subjek perbincangan. Adakah gelung itu mematuhi tertib pengisytiharan sifat?
Memetik John Resig, bapa kepada jQuery, "Semua penyemak imbas utama pada masa ini menggelungkan sifat objek dalam susunan ia ditakrifkan." Walau bagaimanapun, tingkah laku ini tidak ditakrifkan secara eksplisit oleh spesifikasi ECMAScript.
Semua pelaksanaan moden ECMAScript, termasuk majoriti penyemak imbas, menghormati susunan definisi sifat semasa lelaran. Ini bermakna jika anda mempunyai objek dengan sifat yang diisytiharkan sebagai:
var myObject = { A: "Hello", B: "World" };
Gelung pasti akan melintasi sifat dalam susunan yang sama: sifat pertama "A" diikuti dengan sifat "B".
Walaupun kebanyakan penyemak imbas mematuhi peraturan ini, Chrome dan Opera mempamerkan sedikit sisihan. Pelayar ini mengutamakan nama sifat berangka berbanding nama sifat bukan berangka. Oleh itu, jika anda mempunyai gabungan sifat berangka dan bukan berangka, sifat bukan berangka akan ditarik mengikut tertib mendahului sifat bukan berangka yang pertama. Keanehan ini berpunca daripada cara tatasusunan dilaksanakan dalam penyemak imbas ini.
Adalah penting untuk ambil perhatian bahawa tingkah laku ini mungkin berubah dengan kemas kini atau semakan pada enjin penyemak imbas pada masa hadapan. Bergantung pada perintah ini untuk kefungsian kritikal adalah tidak digalakkan.
Kesimpulannya, sementara gelung "untuk…dalam" secara amnya mengekalkan susunan pengisytiharan sifat dalam kebanyakan penyemak imbas, adalah bijak untuk menggunakan tatasusunan jika susunan itu paling utama kepentingan. Pendekatan ini memastikan kebolehpercayaan dan ketekalan merentas penyemak imbas dan versi yang berbeza.
Atas ialah kandungan terperinci Adakah Gelung `for...in` JavaScript Berulang Pada Sifat Objek dalam Susunan Pengisytiharan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!