在JavaScript中,myArray.length = 0 vs myArray = new Array()之间有什么区别?

时间:2013-09-03 11:45:37

标签: javascript

关于JavaScript,在清理数组时,我发现了两种方法:

myArray.length = 0;

VS

myArray = new Array()

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

但是,我在过去发现使用我自己的逻辑猜测JavaScript是如何工作的经常是不成功的:)

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

2 个答案:

答案 0 :(得分:5)

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

顺便说一下,最好使用[]表示法而不是new Array()

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

答案 1 :(得分:0)

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。