【发布时间】:2018-02-21 18:44:06
【问题描述】:
给定以下代码:
var old_Array =["One","Two","..."];
var len = old_Array .length;
var new_Array =[];
for(var i=0;i<len;++i)
{
new_Array.push(old_Array [i]); // ----- [1]
}
[1]行之后new_Array被字符串填充。
- 每个元素实际上是对字符串元素的引用吗?
old_Array,还是只是复制每个字符串元素? - javascript 解释器/编译器是否优化行 -[1] 通过
推送
old_Array中每个字符串元素的引用?
【问题讨论】:
-
只通过引用传递对象,复制字符串等原语。
-
@PatrickEvans 感谢您的快速回复。但是 javascript 引擎是否优化了该代码行?因为该字符串对象的内存分配已经存在于 old_Array 中......我们可以传达我们需要在那里进行优化的编译器......而不是对每个元素进行深拷贝或浅拷贝
-
想想old_Array是否有相当数量的字符串元素,会发生太多的复制操作。
标签: javascript arrays performance optimization