伪数组
在学习数组之前,我们先来了解一下伪数组
即集合的概念
NodeList列表
HTMLCollection集合
属性:length
索引: 0
【分析】他们的形态很像数组,但不是数字,是一些数据的集合
数组Array
功能:能够保存多个数据
语法:
【1】new Array() 定义数组
eg:var arr=new Arry();
new Array(item,item,item);声明同时即初始化
new Arrar(length)定义数组并设定长度
【2】var arr=[]; 定义数组
索引:数组唯一的编号(从0开始)
长度:length 数组中元素个数
数组赋值:数组名[索引]=值;
数组取值:数字名[索引]
注意:
“两个不限制”
在js中数组长度不限
数组类型也不限制(但不推荐)
声明同时即初始化:var arr[0]=[100,200,240];
数组的数据传递机制
【分析】数组是引用类型
引用类型:数据保存分两部分,在堆中保存数据,在栈中保存数据在堆中的地址引用
引用类型赋值,传递是地址
[【分析】如上图所示,定义一个arr1,将arr1中的数据在堆中保存,在栈中开辟一个空间,来存放arr1数据的指向地址,当arr1赋值给新定义的一个数组arr2 时,栈中将开辟一块地址空间,将arr1的地址赋值给arr2的地址。
数组的遍历
数组的遍历,遍历数组长度
【1】for…in
for(var i in arr){}
注意:
在遍历时,索引类型为字符串类型
【2】循环
for(var i=0;i<arr.length;i++){}
数组类型
数组:不分类型,不分长度
数组类型的检测
instanceof
用instanceOf来检测数组的类型
用法如下:
arr instanceof Array
对象数组
将对象作为索引
var arr=[];
arr['李四']=22;
arr['王五']=23;
arr['赵六']=21;
//遍历(只能用for in,因为对象数组的长度为0)
for(var i in arr){
console.log(i,arr[i]);
}
【分析】对象数组的长度为0,但有数据,调用通过对象本身