JavaScript Array 类型
除 Object类型外,Array 类型算是ECMAScript中最常用的类型了,而且,ECMAScript中的数组和其他多数语言的数组有着非常大的差别,虽然这些数组都是数据的有序列表,但与其他语言不同的是,ECMAScript数组的每一项可以保存任何类型的数据,也就是说,可以用数组的第一个位置来保存字符串,第二个位置用来保存数值,第三个位置保存对象...。而且,ECMAScript数组的大小是可以动态调整的,可以随着数据的添加自动增长以容纳新增数据。
- 创建数组的方式有两种:
1.使用Array构造函数,如下代码
var colors = new Array();
如果预先知道数组要保存的项目数量,也可以给构造函数传递该数量,该数量会自动成为 length 的属性值,如下代码
var colors = new Array(10);
也可以向Array构造函数传递数组中应该包含的项,如下代码
var colors = new Array("red","blue","green");
给构造函数传递一个值也可以创建一个数组,如下代码
var colors = new Array(3); //创建一个包含3项的数组 var name = new Array("Jack"); //创建一个包含1项,即字符串"Jack"的数组
在使用Array构造函数创建数组时,可以省略 new 操作符,结果相同,如下代码
var colors = Array(3); //创建一个包含3项的数组 var name = Array("Jack"); //创建一个包含1项,即字符串"Jack"的数组
2.数组字面量表示法,如下代码
var colors = ["red","blue","green"]; //创建一个包含三个字符串的数组 var name = []; //创建一个空数组 var values = [1,2,] //不要这样,这样会创建一个包含2或3项的数组,强烈不建议这种语法 var options = [,,,,,] //不要这样,这样会创建一个包含5或5项的数组,强烈不建议这种语法
注:在使用字面量表示法时,不会调用Array构造函数
- 读取和设置数组
要用方括号并提供响应值的基于0的数字所以,如下代码
var colors = ["red","blue","green"]; //定义一个字符串数组 alert(colors[0]); //显示第一项 colors[2] = "black"; //修改第二项 colors[3] = "brown"; //新增第四项
数组的length属性不是只读的,因此,通过设置这个属性,可以从数组的末尾移除或者添加新项,如下代码
var colors = ["red","blue","green"]; //定义一个字符串数组 colors.length = 2; alert(colors[2]); //undefined (因为移除了第3项,所以他的第3项是undefined)
数组最多可以包含 4,294,967,295 个项,如果超过这个项就会发生异常,创建一个初始大小与这个上限值接近的数组,可能会导致运行时间超长的脚本错误。