一、认识数组
数组是值的有序集合。每一个值叫一个元素,每一个元素在数组中有一个位置,以数字表示,叫做索引。第一个元素的索引为0
,数组有一个length
属性,为数组的元素个数,length
比所有的元素的索引都要大。数组的元素可以是任意类型。数组的索引类似于对象的属性名:var arr=[1,2,3];arr[0]
等价于arr["0"]
;每个实例数组都继承自Array.prototype
中的属性。1.new
+构造创建数组: //使用``new``+构造创建数组//构造可以传一个或多个参数,当传入一个参数时://(1).一个参数且值为数字,则会规定该数组的length为1,数组里没有元素。//(2).一个参数且补位数字时,则该数组的length为1,数组有唯一一个元素就是该参数。//构造函数传入多个参数时:参数为元素。var arr1=new Array(1);//arr1.length为1,arr1没有元素var arr2=new Array("1");//arr2.length为1,arr2有一个元素"1",元素为string类型var arr3=new Array("1","2",3,"abc",null,undefined);//arr3.length为6,有6个元素var arr3=new Array({"name":"yang","age":"27"},[1,2,3],NaN);//还可以传入对象,数组,NaN2.直接量创建数组:var arr4=[1,2,3];arr4[2];//3 //给最后一个元素修改为不可配置,是数组无法添加新元素,数组元素可写:Object.defineProperty(arr4,3,{ configurable:false});arr[3]=4;arr[3];//undefined //让一个元素只读:Object.defineProperty(arr4,"0",{ //这里参数"0"为元素的索引,相当于属性名的意思 writable:false});arr4[0]=0;arr4[0];//索引为0的元素变为只读的//让length属性变为只读的:Object.defineProperty(arr4,"length",{ writable:false});arr4.length=1;arr4;//1,2,3不能用length属性删除某些元素