Adakah Tatasusunan JavaScript Benar-benar Bersebelahan?

DDD
Lepaskan: 2024-11-15 17:43:02
asal
620 orang telah melayarinya

Are JavaScript Arrays Really Contiguous?

Array Jarang dalam JavaScript

Salah tanggapan biasa dalam JavaScript ialah andaian bahawa tatasusunan adalah bersebelahan, bermakna ia mengandungi semua elemen dari indeks 0 kepada panjang semasa mereka. Walau bagaimanapun, ini tidak berlaku: Tatasusunan JavaScript adalah jarang.

Apabila elemen diakses atau ditetapkan menggunakan indeks yang lebih besar daripada panjang semasa, slot kosong dicipta dan tatasusunan dilanjutkan kepada yang sesuai saiz. Sebagai contoh, jika tatasusunan[Date.getTime()] digunakan untuk menetapkan nilai, tatasusunan akan dilanjutkan untuk mengandungi slot kosong dari indeks 0 hingga masa semasa, walaupun slot ini tidak akan digunakan.

Pelaksanaan Jadual Cincang

Tatasusunan jarang dilaksanakan sebagai jadual cincang secara dalaman. Kekunci, yang boleh menjadi integer, rentetan, terapung atau objek lain, ditukar kepada rentetan menggunakan toString() sebelum ditambahkan pada cincang. Ini membenarkan sistem pengindeksan yang fleksibel.

Contoh Ujian

Untuk mengesahkan sifat tatasusunan yang jarang, pertimbangkan kod ujian berikut:

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

for (var i in array) {
    alert("array[" + i + "] = " + array[i] + ", typeof(" + i + ") == " + typeof(i));
}
Salin selepas log masuk

Kod ini akan memaparkan:

array[0] = zero, typeof(0) == string
array[1254503972355] = now, typeof(1254503972355) == string
array[3.14] = pi, typeof(3.14) == string
Salin selepas log masuk

Sintaks untuk...dalam berulang ke atas indeks yang ditentukan, menunjukkan bahawa tatasusunan dilanjutkan dengan slot kosong apabila mengakses atau menetapkan elemen dengan indeks tidak berurutan.

Perbezaan Pelayar

Pelayar yang berbeza mengendalikan tatasusunan yang jarang dengan cara yang sama, dengan tatasusunan dilaksanakan sebagai jadual cincang. Walau bagaimanapun, adalah penting untuk mempertimbangkan penggunaan tatasusunan jarang apabila berurusan dengan indeks yang sangat besar, kerana ini boleh memberi kesan kepada penggunaan dan prestasi memori.

Atas ialah kandungan terperinci Adakah Tatasusunan JavaScript Benar-benar Bersebelahan?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan