Rumah >hujung hadapan web >tutorial js >Adakah Tatasusunan JavaScript Benar-Benar Padat, atau Adakah Ia Menunjukkan Gelagat Jarang?

Adakah Tatasusunan JavaScript Benar-Benar Padat, atau Adakah Ia Menunjukkan Gelagat Jarang?

Barbara Streisand
Barbara Streisandasal
2024-11-13 10:32:02904semak imbas

Are JavaScript Arrays Truly Dense, or Do They Exhibit Sparse Behavior?

Sifat Jarang Tatasusunan Javascript

Dalam Javascript, tatasusunan secara semula jadi jarang, bermakna ia tidak memperuntukkan memori secara automatik untuk semua elemen antara 0 dan indeks semasa. Sebaliknya, elemen hanya diperuntukkan apabila ia diakses atau diberikan.

Sebagai contoh, pertimbangkan kod berikut, di mana kami menetapkan elemen pada masa semasa sebagai indeks:

array[Date.getTime()] = value;

Bertentangan kepada apa yang anda jangkakan, ini tidak menyebabkan jurubahasa memperuntukkan semua elemen dari 0 hingga saat semasa. Sebaliknya, ia hanya memperuntukkan elemen khusus yang diakses.

Pelaksanaan Jadual Cincang

Tatasusunan Javascript dilaksanakan secara dalaman sebagai jadual cincang. Ini bermakna kunci (indeks) bukan sahaja boleh menjadi integer tetapi juga rentetan, apungan atau objek. Setelah dimasukkan ke dalam jadual cincang, semua kunci ditukar kepada rentetan menggunakan kaedah toString().

Kod Pengesahan

Anda boleh mengesahkan sifat jarang ini dengan ujian berikut kod:

var array = [];
array[0] = "zero";
array[new Date().getTime()] = "now";
array[3.14] = "pi";

for (var i in array) {
  console.log("array[" + i + "] = " + array[i] + ", typeof(" + i + ") == " + typeof(i));
}

Kod ini berulang ke atas indeks dan output yang ditakrifkan sebenar:

array[0] = zero, typeof(0) == string
array[1254503972355] = now, typeof(1254503972355) == string
array[3.14] = pi, typeof(3.14) == string

yang menunjukkan bahawa indeks bukan integer juga berfungsi tanpa memperuntukkan elemen perantaraan. Walau bagaimanapun, ambil perhatian bahawa menggunakan gelung for tradisional dengan i antara 0 hingga array.length boleh membawa kepada isu dengan indeks tatasusunan bukan standard.

Atas ialah kandungan terperinci Adakah Tatasusunan JavaScript Benar-Benar Padat, atau Adakah Ia Menunjukkan Gelagat Jarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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