创建数组的第二种基本方式是使用数组字面量表示法。数组字面量由一对包含数组项的方括号表示,多个数组之间以逗号隔开,如下所示:
var colors=["red","blue","green"]j //创建一个包含3个字符串的数组
var names=[]; //创建一个空数组
var values=[1,2,]; //不要这样!这样会创建一个包含2或3项的数组
var options=[,,,,]; //不要这样!这样会创建一个包含5或6项的数组
以上代码的第一行创建了一个包含3个字符串的数组。第二行使用一对空方括号创建了一个空数组。第三行展示了在数组字面量的最后一项添加逗号的结果:在IE中,values会成为一个包含3个项且每项的值分别为1、2和undefined的数组;在其他浏览器中,values会成为一个包含2项且值分别为l和2的数组。南昌网络公司做网站公司提醒广开发人员,出现这种情况的主原因是IE的ECMAScript实现在数组字面量方面存在bug。由于这个bug导致的另一种情况如最后一行代码所示,该行代码可能会创建包含5项的数组(在Firefox. Opera. Safari和Chrome中),也可能会创建包含6项的数组(在IE中)。在像这种省略值的情况下,每一项都将获得undefined值;这个结果与调用Array构造函数时传递项数在逻辑土是相同的。但是由于IE的实现与其他浏览器不一致,因此我们强烈建议不要使用这种语法。
与对象一样,在使用数组字面量表示法时,也不会调用Array构造函数(Firefox除外)。
在读取和设置数组的值时,要使用方括号并提供相应值的基于0的数字索引,如下所示:
var colors=["red","blue","green"]; //定义一个字符串数组
alert (colors[O]); //显示第一项
colors [2]="black"; //修改第三项
colors[3]="brown"; //新增第四项
方括号中的索引表示要访问的值。南昌建网站公司工程师提示,如果索引小于数组中的项数,则返回对应项的值,就像这个例子中的colors[o]会显示"red"一样。设置数组的值也使用相同的语法,但会替换指定位置的值。如果设置某个值的索引超过了数组现有项数,如这个例子中的colors[3]所示,数组就会自动增加到该索引值加l的长度(就这个例子而言,索引是3,因此数组长度就是4)。
数组的项数保存在其length属性中,这个属性始终会返回0或更大的值,如下面这个例子所示:
var colors=["red","blue","green"]; //创建一个包含3个字符串的数组
var names=[]; //创建一个空数组
alert(colors.length); //3
alert(names.length); //0
数组的length属性很有特点——它不是只读的。因此,通过设置这个属性,可以从数组的末尾移除项或向数组中添加新项。请看下面的例子:
var colors=["red","blue","green"]; //创建一个包含3个字符串的数组
colors.length = 2;
alert(colors(2)); //undefined
这个例子中的数组colors -开始有3个值。将其length属性设置为2会移除最后一项(位置为2的那一项),结果再访问colors[2]就会显示unde fined了。如果将其length属性设置为大于数组项数的值,则新增的每一项都会取得undefined值,如下所示:
var colors=["red","blue","green"]; //创建一个乱会3个字符串的数组
colors.length = 4;
alert(colors(3)); //undefined
在此南昌网页设计公司工程师提示,虽然colors数组包含3个项,但把它的length属性设置成了4。于是,这个数组中位置为3的那一项就获得了unde fined值,数组的项数也增加到4。 利用length属性也可以方便地在数组末尾添加新项,如下所示:
var colors=["red","blue","green"]; //创建一个包含3个字符串的数组
colors[colors.length] = "black"; //(在位置3)添加一种颜色
colors[colors.length] = "brown"; //(在位置4)添加一种颜色
由于数组最后一项的索引始终是length-l,因此下一个新项的位置就是length。每当在数组末尾添加一项后,其length属性都会自动更新以反应这一变化。换句话说,上面例子第二行中的 colors[colors .length]为位置3添加了一个值,最后一行的colors[ colors .length]则为位置4添加了一个值。当把一个值放在超出当前数组大小的位置上时,数组就会重新计算其长度值,即长度值等于最后一项的索引加l,如下面的例子所示:
var colors=["red","blue","areen"]; //创建一个包含3个字符串的数组
colors[99] = "black"; //(在位置99)添加一种颜色
alert(colors.length); //100
在这个例子中,我们向colors数组的位置99插入了一个值,结果数组新长度(length)就是100 (99+1)。而从位置3到位置98的每一项,都将获得undefined值。
南昌网站建设公司百恒网络前端开发工程师提示,数组最多可以包含4294967295个项,这几乎已经能够满足任何编程需求了,如果想添加的项数超过这个上限值,就会发生异常.而创建一个初始大小与这个上限值接近的数组,则可能会导致运行时间超长的脚本错误.
希望本文对广大站长或从事企业网站建设公司的团队有所帮助,如对此不太理解的,可以与南昌做网站公司百恒网络技术部联系。我们很高兴与广大站长和从事企业网站建设公司技术人员分享我们的技术和经验。