Array类型
ECMAScript中,Array应该是仅次于Object的了。js中的Array类型和其他语言的Array的不同是js中的数组的每一项可以保存任何类型的数据,而且数组的大小是可以动态调整的,可以随着数据的增加自动增长以容纳新增数据。
ECMAScript有两种创建数组的方式。第一种是使用构造函数的方式,如下代码实例:
var arr = new Array();
像这种方式创建的数组,如果预先知道数组要保存的项目数量,也可以给构造函数传递参数,指定相应的项目数量,这样每一项的初始值都是undefined。如下代码实例:
var arr = new Array(20);
同样在使用构造函数方式创建数组的时候,如果知道要保存的每一个具体的项,也可以将具体的项传递给构造函数。如下代码:
var colors = new Array("red","green","black","gray");
还有一点,就是在ECMAScript中,使用构造函数创建数组的时候new操作符是可以省略的。看如下代码实例:
var arr = Array(20); var colors = Array("red","green","black","gray");
这两行代码的实际作用和下面代码是一样的:
var arr = new Array(20); var colors = new Array("red","green","black","gray");
创建数组的第二种方式是使用数组字面量表示法。数组字面量由一对包含数组项的方括号表示,多个数组项之间以逗号隔开。
function test(){ var colors = ["red","gray","green","black"]; var names = []; var values = [1,2,]; var options = [,,,,,]; }
上面代码都可以创建数组,但是像values和options数组在IE里面会有bug,就是在其他主流浏览器如firefox、opera、safari、chrome中,values和options分别会创建包含2个和5个项的数组,但是在IE的实现中,这会分别创建包含3个项和6个项的数组,正因IE存在实现ECMAScript中的这个个bug,一般的时候不建议使用这种方式创建数组。
与Object一样,在使用数组字面量表示法时,也不会调用构造Array的构造函数,firefox除外。
在读取和设置数组的值时,要使用方括号并提供基于0的索引。数组的索引值从0开始。
<script type="text/javascript"> var colors = ["red","green","black","gray"]; document.write(colors[0]); colors[1] = "as"; document.write(colors[1]); </script>
方括号中的索引值表示要访问的值,如果索引值小于数组的项数,则返回相应的值,设置值也是这个道理。