JS_高程5.引用类型(2)Array类型
Array类型:
ECMAScript数组的每一项可以保存任何类型的数据,数组的大小是可以动态调整的。
创建数组的基本方式:
(1)使用Array构造函数
1 var color=new Array();
注意:
给构造函数传递一个值时,如果传递的是数值,则会按照该数值创建包含给定项数的数组;如果传递的是其他类型的参数,则会创建包含那个值的只有一项的数组。
eg:
1 var color=new Array(3);//创建一个包含3项的数组 2 var name=new Array("Mary");//创建包含一项,即字符串“Mary”的数组
使用Array构造函数也可以省略new操作符:
eg:
1 var name=Array("Mary");//创建包含一项,即字符串“Mary”的数组 2 alert(name);
(2)使用数组字面量表示法:
eg:
1 var color=["red","blue","green"]; 2 var names=[];//创建一个空数组 3 var values=[1,2,];//不要这样,会创建包含2项或是3项的数组 4 var opyions=[,,,,,];//不要这样,会创建包含5项或是6项的数组
注意:
(1)如上例子中的第三行,在IE中,values会成为一个包含3个项且每一项的值分别是1,2和undefined的数组,在其他浏览器中,values会成为一个包含2项的数组,值分别是1和2。原因是IE8及之前的版本中的ECMAScript实现数组字面量方面存在bug。
(2)与对象一样,使用数组字面量表示法,也不会调用Array构造函数。(Firefox3及更早的版本除外。)
(3)在读取和设置的值时,要使用方括号提供相应值的基于0的数值索引。
eg:
1 var color=["red","blue","green"]; 2 alert(color[0]);//显示第1项 3 color[2]="black";//修改第3项 4 color[3]="browm";//新增第4项
(4)数组的项数保存在其length属性中,这个属性始终会返回0或是更大的数,它不是只读的,因此可以通过设置这个属性,从数组的末尾移除项或是向数组中添加项。
eg:
1 var colors=["red","blue","pink"]; 2 alert(colors.length);//3 3 colors.length=2; 4 alert(colors[2]); 5 alert(colors.length);//2
(4)可以利用length属性在数组末添加新项:
eg:
1 var colors=["red"]; 2 colors[colors.length]="black"; 3 colors[colors.length]="pink"; 4 alert(colors.length);//3 5 alert(colors[2]);//pink
由于数组最后一项的索引始终是length,因此下一新项的位置就是length。每当在数组末尾填加一项后,其length属性都自动更新以反应这一变化。
注意:
Javascript使用一个32位整数,保存数组的元素个数。这意味着数组的成员最多只有4294967295个(即2的32次方)。。如果想添加的项数超过这个上限值,就会发生异常,而创建一个初始化大小与这个上限值接近的数组,则可能导致运行时间超长的脚本错误。