数组
数组是值的有序集合
创建:
数组直接量创建
var empty=[]; var primes=[]2,3,5,7,11; var misc=[1.1,true,"a",]; var base=1024; var table=[base,base+1,base+2,base+3]; var b=[[1,{x:1,y:2}],[2,{x:3,y:4}]]; 如果省略数组直接量中的某个值,省略的元素将被赋值undefined var count=[1,,3]; var undefs=[,,]; //数组允许有可选的逗号结尾,所以只有两个元素
构造方法创建
var a=new Array(); var a=new Array(10); var a=new Arrays(5,4,3,2,1,"testing","testing");
数组的读和写
使用[]操作符来访问数组中的一个元素。
数组的引用位于方括号左边。方括号中是一个返回非负整数的任意表达式。该语法既可读又可写数组元素。
var a=["world"]; var value=a[0]; a[1]=3.14; i=2; a[i+1]="hello";
数组是对象的特殊形式。使用方括号访问数组就像用方括号访问对象的属性一样。JavaScript将指定的数字索引值转换成字符串——索引值编程“1”——然后将其作为属性名来使用。
数组的特别之处在于,当使用小于2^32的非负整数作为属性名时数组会自动维护其length数字那个值。
o={}; o[1]="one";
再给o的2和3的位置赋值,数组的长度自动变成4
稀疏数组
稀疏数组就是包含从0开始的不连续索引的数组。
这样的数组,length属性值大于元素的个数
注意:
var a1={,,,};
当在数组直接量中省略值时不会创建稀疏数组,省略的元素在数组中是存在的,其值为undefined。这和元素根本不存在是有一些微妙的区别的,可以用in来检测。
var a1=[,,,]; //数组是[undefined,undefined,undefined] var a2=new Array(3); //该数组根本没有元素 0 in a1; =》 true: a1在索引0处有一个元素 0 in a2; =》 false
数组长度
.length属性值代表数组中元素的个数。其值比数组中最大的索引大1