nw.*_*nw. 20 javascript arrays linked-list
我是Javascript的新手,并注意到你不需要指定一个数组的大小,并经常看到人们一次动态创建数组元素.这在其他语言中将是一个巨大的性能问题,因为随着它的大小增加,您将不断需要为该阵列重新分配内存.
这不是JavaScript中的问题吗?如果是这样,那么是否有可用的列表结构?
vcs*_*nes 17
它很可能取决于您使用的JavaScript引擎.
Internet Explorer使用稀疏数组和密集数组的混合来实现这一点.这里解释了一些更为详尽的细节:http://blogs.msdn.com/b/jscript/archive/2008/04/08/performance-optimization-of-arrays-part-ii.aspx.
Mal*_*lio 16
Javascript数组通常实现为散列图(就像Javascript对象一样),并带有一个附加功能:有一个属性length,它比已用作键的最高正整数高一个.没有什么阻止你也使用字符串,浮点数,甚至是负数作为键.除了好感之外什么也没有.
关于动态语言的事情是,它们是动态的.就像Java中的ArrayList或Perl,PHP和Python中的数组一样,JavaScript中的数组将分配一定量的内存,当它变得太大时,语言会自动附加到对象上.它是否像C++甚至Java一样高效?否(C++甚至可以围绕JS的最佳实现运行),但人们并没有在JS中构建Quake(仅此而已).
实际上,最好将它们视为具有一些专门方法的HashMaps - 毕竟,这是有效的:var a = []; a['cat']='meow';.
| 归档时间: |
|
| 查看次数: |
10542 次 |
| 最近记录: |