JavaScript 网页编程从入门到精通 (清华社"视频大讲堂"大系·网络开发视频大讲堂)
上QQ阅读APP看书,第一时间看更新

9.1 定义数组

定义数组的方法有两种:使用构造函数创建数组,使用直接量定义数组。具体说明如下。

9.1.1 构造数组

使用Array()构造函数可以构造数组。当使用new运算符调用Array()构造函数时,可以创建一个新数组。

【示例1】当调用Array()构造函数时,没有传递参数,可以创建一个空数组。

      var a=new Array();                                          //空数组

【示例2】当调用Array()构造函数时,明确指定数组元素的值,可以创建一个实数组。

      var a=new Array(1, true, "string", [1,2], {x:1, y:2});      //实数组

在这种形式中,构造函数带有一个参数列表,每个参数指定一个元素的值,值的类型是任意的。参数列表的顺序是数组元素的顺序,从数组下标0开始,数组的length属性值正好等于Array构造函数所传递的参数个数。

【示例3】当调用Array()构造函数时,仅给Array()构造函数传递一个数值参数,该数值定义了数组的长度,即定义数组中包含元素的个数。

      var a=new Array(5);                                         //指定长度的数组

在这种形式中,参数值等于数组的length属性值,每个元素的值预定义为undefined。

【示例4】本示例容易产生分歧,设计定义一个仅含一个元素且元素值为1的数组,但是JavaScript误解为定义一个长度为1的数组,所以返回值为undefined。

      var a=new Array(1);                                        //到底是指元素的值,还是指定元素的个数
      alert(a[0]);                                               //返回undefined,说明JavaScript理解为元素的个数

解决方法是,重新为数组的元素赋值:

      a[0]=1;                                                    //为元素赋值

9.1.2 数组直接量

数组直接量是定义数组的快捷方法。方法是在中括号运算符中包含多个值列表,以逗号进行分隔。

【示例】下面的代码使用了数组直接量定义数组。

      var a=[];                                                 //空的数组直接量
      var a=[1, true, "string", [1,2], {x:1, y:2}];             //包含具体元素的数组直接量

使用数组直接量定义数组,能够提高数组初始化运行效率。因此,在没有特殊要求的情况下建议使用数组直接量定义数组。