Нет.
Что такое массивы JavaScript, а какие нет, определяется спецификацией языка, в частности, раздел 15.4 .Array
определяется в терминах операций, которые он не предоставляет подробности реализации макета памяти какой-либо конкретной структуры данных.
Может ли Array
быть реализован поверх связанного списка?Да.Это может ускорить выполнение некоторых операций, таких как shift
и unshift
, но индекс 1011 * также часто доступен по индексу, который неэффективен для связанных списков.
Также можно получить лучшее из обоихмиры без связанных списков.Структуры данных с непрерывной памятью, такие как циклические очереди , имеют как эффективную вставку / удаление с фронта, так и эффективный произвольный доступ.
На практике большинство интерпретаторов оптимизируют плотные массивы, используя структуру данных, основанную наизменяемый или перераспределяемый массив, похожий на C ++ vector
или Java ArrayList
.