转自 Javascript高级程序设计(第三版):
ECMAScript数组中的每一项都可以保存任何类型的数据。也就是说,可以用数组的第一个位置来保存字符串,用第二个位置来保存数值,用第三个位置来保存对象,依次类推。而且,ECMAScript数组的大小是可以动态调整的,即可以随着数据的添加自动增长以容纳新数据。
创建数组的基本方式有两种:
1)使用Array构造函数:
使用new操作符:
如:var colors=new Array();
var colors=new Array(20);
var colors=new Array("red","blue","green");
不使用new操作符:
var colors=Array(3);
var names=Array("greg");
2)第二种方法是使用字面量表示法:
也不是不使用array进行操作。
var color=["red","green","blue"];
在读取和设置数组的值时,要使用方括号并提供相应值的基于0的数字索引。
例如:
var colors=["red","blue","green"];
//显示第一项
alert(colors[0]);
//修改第三项
colors[2]="black";
//新增第四项
colors[3]="brown";
与一般的语言不同,如果设置某个值的索引超过了数组现有项数,数组就会自动增加到该索引加1的长度。
数组的length属性很有特点,它不只是只读的。因此,通过这个属性,可以从数组的末尾移除项或向数组中添加新项。
例如:
var colors=["bule","red","green"];
colors.length=2;
alert(colors[2]);//undefined
由于数组最后一项的索引始终是length-1,因此下一个新项的位置就是length。
例如:var colors=["blue","red","green"];
colors[99]="black";
alert(colors.length);//100
但是实际上,位置3到位置98实际上都是不存在的,所以访问他们都将返回undefined.
数组最多可以包含4294967295个项。如果想添加的项数超过这个上限值,就会发生异常。
数组继承的toLocaleString(),toString()和valueOf()方法,在默认情况下都会以逗号分隔字符串的形式返回数组项。而如果使用join方法,则可以使用不同的分隔符来构建这个字符串,join方法只接收一个参数。
var colors=["bule","red","green"];
alert(colors.join("||"));//blue||red||green