左手抓右手

右手加左手

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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>

  方括号中的索引值表示要访问的值,如果索引值小于数组的项数,则返回相应的值,设置值也是这个道理。

 

posted on 2012-05-31 07:09  yansj1997  阅读(505)  评论(1编辑  收藏  举报