为什么javascript数组索引由数组长度设置

时间:2013-07-09 15:37:27

标签: javascript

碰到了这段代码,它让我摸不着头脑,想知道抓住设定索引的长度对他们有什么好处。

var thisarray = new Array();

    function addtoArray(int){
        thisarray[thisarray.length] = int;
    }

over array.push

 function addtoArray(int){
        thisarray.push(int)
    }

此外,是否有相当于这个PHP

thisarray[]

2 个答案:

答案 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] = intthisarray.push(int)完全相同。可以说,后者对前者的唯一优势是可读性。

您可能还会发现此问题的答案很有用:Why is array.push sometimes faster than array[n] = value?