- Javascript 是否为数组中的前 57 个“空”条目分配内存?
1. No
JS 数组可能是也可能不是dense基于引擎、如何构建它们以及之后如何使用它们。
流行的引擎将创造dense每当您构造数组并定义其所有元素且没有漏洞时,都会创建数组。
Dense数组定义:
[0,1,2,3,4];
Array.apply(null, Array(4)); // This is creating an Array expanding the internal Sparse Array as it initial values.
Sparse数组定义:
[0,,2,3,4];
new Array();
new Array(4);
- 如果不是,Javascript 如何使用碎片内存地址进行查找时保持 O(1) ?
2.取决于阵列
For dense数组它将把所有内容存储在同一块内存中。
For sparse数组它将创建一个哈希表并独立存储指向每个元素的指针。
- Javascript 数组真的是一个数组还是只是一个以整数作为键的对象?
3.他们是一种Object
数组是常规对象,具有一些属性,可以让它们按照您的预期运行。
使用整数键访问元素,例如1
(或表示整数的字符串,例如"1"
)将检索该密钥下存储的任何内容。使用非整数(也不是整数的字符串表示形式)仍将设置/检索对象属性。
Array length
只是对象的一个属性,其值不受修改对象属性的影响。
- 这个设计模式叫什么,以便我可以进一步研究它?
4.没有把握