在 JavaScript 中,myArray.length = 0 与 myArray = new Array() 有啥区别? [复制]

Posted

技术标签:

【中文标题】在 JavaScript 中,myArray.length = 0 与 myArray = new Array() 有啥区别? [复制]【英文标题】:In JavaScript, what's the difference between myArray.length = 0 vs myArray = new Array()? [duplicate]在 JavaScript 中,myArray.length = 0 与 myArray = new Array() 有什么区别? [复制] 【发布时间】:2013-09-06 15:25:55 【问题描述】:

关于javascript,在清空数组时,我找到了两种方法:

myArray.length = 0;

myArray = new Array()

我猜myArray.length = 0; 会保留引用,而myArray = newArray() 会创建一个新引用,使之前的引用无效。

这两种方法有什么区别(如果有的话)?

【问题讨论】:

【参考方案1】:

这次你是对的。 new Array() 创建一个新的数组实例并将其分配给myArraymyArray.length = 0 清空旧数组,而 myArray 仍指向旧数组。

顺便说一句,使用[] 表示法比使用new Array() 更好。

我个人总是尝试使用myArray.length = 0;,因为它实际上清空了数组的内容。

【讨论】:

很高兴看到不同的方法。为什么使用[] 表示法比使用new Array() 更好。【参考方案2】:
myArray.length = 0; // Signifies empty array
[1,2,3] // Length of this array is 3

所以基本上,一个有内容的数组会被一个空数组覆盖。

你也可以这样用:

myarray = []; //More simple and elegant!!!

性能方面:[]new Array(); 快​​

正如 juno 已经说过的:new Array() 创建一个新的数组实例(这个数组将具有参数中提到的大小)并将其分配给 myArray。

【讨论】:

以上是关于在 JavaScript 中,myArray.length = 0 与 myArray = new Array() 有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

javascript中如何加载freemark指令

在 Qml 和 javascript 中动态读取配置文件(javascript 文件或 json 文件)

javascript 在Javascript中捕获组

javascript 在Javascript中连接文本和变量

javascript 在javascript中搜索对象数组

javascript 也许Monad在Javascript中