数组(Array)
1.什么是数组?
数组也是一个对象,数组就是一组数据的集合。
不同的是普通对象是使用字符串作为属性名的。
而数组是使用数字来作为索引操作元素。 索引:从0开始的整数
其表现形式就是内存中的一段连续的内存地址
数组名称其实就是连续内存地址的首地址
如图1所示:
2、关于JS中的数组特点
数组定义时无需指定数据类型
数组定义时可以无需指定数组长度
数组可以存储任何数据类型的数据(比如说一个元素保存整型,一个元素保存字符串型,这个在JS中是可以的)
创建数组的语法:
向数组中添加元素
语法:数组[索引]=值;
读取数组中的元素
语法:数组【索引】
如果读取不存在的索引,则返回undefined
var arr=[值1,值2,值3]; //隐式创建(使用字面量来创建数组)
var arr=[1,2,3,4,5,6];
console.log(arr[2]); //返回值为3
console.log(arr[6]); //则返回undefined
console.log(typeof arr); //返回Object
var arr=new Array(值1,值2,值3); //直接实例化
var arr = new Array(1,2,3,4,5,6);
console.log(arr[1]); //返回值为2
console.log(typeof arr); //返回Object
var array=new Array(size); //创建数组并指定长度
var arr=new Array(5); //定义一个数组的长度为5
arr[0]=11;
arr[1]=22;
arr[2]=33;
arr[3]=44;
arr[4]=55;
console.log(arr[3]); //返回值为44
注意一下这两个的区别:
var a = new Array(5); //指创建长度为5的数组
var a = new Array([5]); //指创建一个数组,长度为1,并且第一位是5
数组中的元素可以是任意的数据类型
var arr2=["hello",1,true];
console.log(arr2[2]); //返回true
数组中的元素也可以是对象
var arr=[1,2,3,4,5,6];
var obj={name:"孙悟空"};
arr[arr.length]=obj;
console.log(arr[6].name); //返回孙悟空
当然也可以是函数,其实上面就说了可以是任意的数据类型,但是比较特殊就举例一下。
var arr=[function(){alert(1)},function(){alert(2)}]
arr[0]();
JS中符号含义:
()表示函数执行
[]表示语法模拟,表示模拟Array类的实例(=new Array())
{}表示语法模拟,表示模拟Object类的实例(=new Object())
3.获取数组的长度
可以使用length属性来获取数组的长度(数组的个数)
语法:数组.length
对于连续的数组,使用length可以获取到数组的长度。
对于非连续的数组,使用length会获取到数组的最大索引+1。
var arr=new Array();
arr[0]=11;
arr[1]=22;
arr[2]=33;
arr[99]=99;
console.log (arr.length); //会显示数组的长度为100
如果修改的length大于原长度,则多出来的部分会空出来;
var arr=new Array();
arr[0]=1;
arr[1]=2;
arr[2]=3;
arr[3]=4;
arr.length=10;
console.log(arr); //会显示1,2,3,4, , , , , , , ,
如果修改的length小于原长度,则多出来的元素会被删除.
var arr=new Array();
arr[0]=1;
arr[1]=2;
arr[2]=3;
arr[3]=4;
arr.length=3;
console.log(arr[]); //只会显示1,2,3
向数组的最后一个位置添加元素 ,我们可以
语法:数组[数组.length]=值;
var arr=new Array();
arr[0]=11;
arr[arr.length]=22;
arr[arr.length]=33;
console.log(arr); //11,22,33