var arr=[]

var arr=new Array();
区别是什么?

解决方案 »

  1.   

    一种是匿名的方式,一种是通过new Array()
      

  2.   

    new Array()在创建对象时,会分配默认的元素个数,也就是说,哪怕你这个里边只放一个元素,它也会占据默认元素个数的空间,而当里面的元素超过个数时,会再度分配新的空间出来。
    使用这种,一般用于不确定元素个数的场合,理论上来说,它有浪费内存空间的嫌疑(它没有被使用完全的情况会占绝大多数)。arr=[]在创建对象时,元素个数已确定,使用在已知元素个数的场合,相对来说,它的限制更大,但是也更"节能"。                                                                        引用------------Lisliefor
      

  3.   

    用arr=[]
    应该是更快更有效率。。
    new Array()
    更方便更灵活
      

  4.   

    两者没有本质上的区别array literal的方式
    var arr = [];
    告诉JavaScript interpreter创建了一个runtime array
    它的prototype是Array.prototype,arr instanceof Array的返回的是true
    继承了Array.prototype对象的所有对array操作的方法
    可以在[]指定以逗号分隔的array元素array constructor的方式
    var arr = new Array();
    解释器搜索JavaScript执行上下文,寻找一个名字叫Array的constructor,创建对象,初始化,返回对象
    如果没有在JavaScript执行上下文当中定义自身的Array constructor,JavaScript会调用在运行时载入
    的属于global object的Array(),这种方式的prototype也是Array.prototype
    同样也是继承了Array.prototype里面的操作如果有用户定义的Array()构造函数,则会调用这个Array()创建array,这种方式的prototype是用户在
    构造函数Array()中使用的Array.prototype,继承了用户定义的Array.prototype对象里面的方法可以在Array()括号里面使用唯一的number参数指定arr的长度,因为arr的长度是动态的,这点似乎没有
    什么用。Array()当中使用多个参数表示arr里面的元素。
    var arr = new Array(10); //长度为10的array
    var arr = new Array(1, 2, 3); //等同于 var arr = [1, 2, 3];另外一个区别是
    var arr = [,,,]; //合法
    var arr = new Array(,,,); //不合法最后更多的人推荐使用第一种方式创建数组。一点个人见解~~
      

  5.   

    nb,解释得真清楚,看了之后觉得如果没有重载array对象的话,就使用[]创建是最好最快的