访问数组就是访问数组元素。元素相当于变量,数组的元素是一组有序排列的变量,它们没有标识符,以下标进行索引,下标从0开始,有序递增。注意,数组下标是非负整数型表达式,或者是字符型数字,但不可以为其它类型的值或表达式。
使用中括号([])可以读写数组。中括号左侧是数组名称,中括号内为数组下标。
数组[下标表达式]
下标表达式是值为非负整数的表达式。
【示例1】下面代码使用中括号为数组写入数据,然后再读取数组元素的值。
var a = []; //声明一个空数组 a[0] = 0; //为第1个元素赋值为0 a[2] = 2; //为第3个元素赋值为2 console.log( a[0] ); //读取第1个元素,返回值为0 console.log( a[1] ); //读取第2个元素,返回值为undefined console.log( a[2] ); //读取第3个元素,返回值为2
在上面代码中仅为0和2下标位置的元素赋值,下标为1的元素为空,读取时为空的元素返回值默认为undefined。
【示例2】下面代码使用for语句批量为数组赋值。其中数组下标是一个递增表达式。
var a = new Array(); //创建一个空数组 for( var i = 0; i < 10; i ++ ){ //循环为数组赋值 a[i ++ ] = ++ i; //不按顺序为数组元素赋值 } console.log( a ); //返回2,,,5 ,,,8,,, 11
【示例3】设计有两个变量,不需要其它变量的帮助实现值互换。
一般情况下实现变量交换,需要定义一个临时变量做中转。
var a = 10, b = 20; //变量初始化 var temp = a; //定义临时变量存储a a = b; //把b的值赋值给a b = temp; //把临时变量的值赋值给b
利用数组就可以这样设计:
var a = 10, b = 20; //变量初始化 a = [b, b = a][0]; //通过数组快速交换数据
【设计技巧】
数组的元素允许使用表达式,表达式的值与元素的值是两个不同概念,本质上元素也是一个变量,标识符是下标编号。在一个匿名数组中,把变量b的值传递给第一个元素,然后在第二个元素中以赋值表达式运算的方式把变量a的值赋值给变量b,再把变量b的值传递给第二个元素。这个过程是按顺序执行的,变量b的值被重写,同时数组也被添加了2个元素,最后使用中括号语法读取第一个元素的值,并赋值给变量a,从而实现值互换。