上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}]; //包含具体元素的数组直接量
使用数组直接量定义数组,能够提高数组初始化运行效率。因此,在没有特殊要求的情况下建议使用数组直接量定义数组。