碰到了这段代码,它让我摸不着头脑,想知道抓住设定索引的长度对他们有什么好处。
var thisarray = new Array();
function addtoArray(int){
thisarray[thisarray.length] = int;
}
over array.push
function addtoArray(int){
thisarray.push(int)
}
此外,是否有相当于这个PHP
thisarray[]
答案 0 :(得分:4)
在您发布的示例中,两种用法是相同的。两者都在数组的末尾附加一个新元素。
但是,push()
方法可以使用多个参数,因此您可以在一个语句中将多个元素附加到数组的末尾。然后push()
返回数组的新长度。 push()
也更短,更容易理解。
另一件需要考虑的事情是,如果thisarray
被错误地定义(即它不是一个Array对象),那么thisarray[thisarray.length] = int;
可能会无声地失败,因为.length
将只是{ {1}}。而undefined
将因可捕获的TypeError异常而失败。
关于PHP的thisarray.push(int)
(方括号)语法。就语法而言,JavaScript中没有任何相同的东西。但是,thisarray[]
执行相同的操作。
答案 1 :(得分:2)
thisarray[thisarraylength] = int
和thisarray.push(int)
完全相同。可以说,后者对前者的唯一优势是可读性。
您可能还会发现此问题的答案很有用:Why is array.push sometimes faster than array[n] = value?