有人能解释一下它们之间的概念上的区别吗?从某个地方读到第二个会通过销毁对现有数组的所有引用来创建新数组,而.length=0只是清空数组。但在我的情况下它没起作用。
//Declaration
var arr = new Array();
下面的代码是循环执行的代码。$("#dummy").load("something.php",function(){
arr.length =0;// expected to empty the array
$("div").each(function(){
arr = arr + $(this).html();
});
});
但是,如果我用 arr =[]
替换 arr.length=0
的代码,它可以正常工作。有人能解释一下这里发生了什么吗。
arr = arr + $(this).html();
进行循环?如果你想要向数组中添加内容,应该使用Array.push()
方法。 - BoltClockarr
将是一个字符串的引用,因此从那时起arr.length
将不会有任何效果(因为length
是 String 的只读属性)。arr = []
将在每次迭代开始时将arr
转换回空数组,但然后你立即又将其转换为字符串。所以你要么在尝试简化示例时破坏了代码,要么就是在做非常奇怪的事情 :P - Joe Dyndale