Array类型是数组类型,Array(数组)类型也是引用类型中的一种。
js 数组中的每一项可以保存任何类型的数据。
js数组的大小/长度是可以动态调整的。如果你往数组中添加数据,数组长度会自动增加。
数组的创建方式:
方式1:使用Array构造函数:
var arr = new Array();
你也可以传入参数,如:var arr = new Array(3,”lijinwen”);
new 也可以省略。如:var arr = Array(3,”lijinwen”);
注:如果使用 Array 构造函数的方式创建数组,且传入的参数只有一个且是Number类型,如:var arr = Array(3)
那么这个参数3代表着创建的这个数组的长度为3,不表示数组里面某项的值。
方式2:使用数组字面量的方式:如:
var arr = [1,2,3];
数组的属性:length
可以用length属性计算出数组的长度,如:
var arr = [1,2,3];
console.log(arr.length);//3
length属性是可读的,也是可写的。可以从数组的末尾添加删除某项;
var arr = [1,2,3];
arr.length = 2;
console.log(arr[2]);//undefined
删除了数组最后的一项,所以索引为2的项(第3项),不存在了。
数组的检测:
前面说到过,可以用typeof操作符检测数据类型。但是对于引用类型来说,执行typeof操作符返回的都是object(对象)类型。
我们需要确定一个引用类型是不是数组,可以用 instanceof 操作符(必须在一个全局执行环境中)。如:
var arr2 = ["lijinwen",20,"180cm"];
console.log(arr2 instanceof Array);//true
console.log(arr2 instanceof Object);//true
第三行代码也打印出true,因为Array对象继承自Object对象。
instanceof 判断的是在一个全局执行环境中。如果网页中存在多个框架,那么全局执行环境就不止一个了。
ES5中,新增方法 Array.isArray();解决不在一个全局执行环境下存在的问题,如:
console.log(Array.isArray(arr2));//true