10

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

myArray.length = 0;

对比

myArray = new Array()

我猜想在创建新参考myArray.length = 0;时保留参考,使以前的参考无效。myArray = newArray()

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

4

2 回答 2

5

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

顺便说一句,最好使用[]符号而不是new Array().

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

于 2013-09-03T11:47:59.013 回答
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。

于 2013-09-03T11:49:43.247 回答