数组是一种有序数据集合,数组中的每一个元素的值都可以是任意类型,数组当中还可以包含数组,通过这种方式可以间接的创建复杂的多维数组(JavaScript不能直接的支持二维或者多维数组)。
官方提供定义数组的方法有两种:
1、使用构造函数创建数组
2、使用直接量定义数组
构造数组:
var a = new Array(); //空数组
var b = new Array(1, true, 'string', [1,2], {x:1, y:2},
function x(){
console.log(123)
},
null, NaN, undefined); //包含各种类型值的实数组
如果只给Array构造函数传递一个数值作为参数,则该数字定义了此数组的length
var c = new Array(5); //此为长度为5的空数组
以上代码输出结果为:
此时每个元素的预定义值都为:undefined
注意:此时容易产生歧义,因为假设我正好只想构建一个,只包含数字1的数组,就可能写成
var d = new Array(1); //输出一个length为 1 的数组,其值为undefined
但系统会默认为,我想构造一个length为 1 的数组,其值为undefined
解决办法:
重新为数组赋值,即
d[0] = 1;
或者使用以下第2种方法(直接量)定义数组。
数组直接量:
使用直接量是定义数组的快捷方法。用法示例如下
var e = [1, true, 'string', [1, 2], { x: 1, y: 2 },
function x() {
console.log(123)
},
null, NaN, undefined];
使用直接量定义数组,能够提高数组初始化运行效率,
因此在没有特殊要求的情况下,一般建议使用直接量定义数组。
补充:
1、Array()就是原生的数组构造函数,一般来说可无需添加new,可实现同样效果。