数组的特性
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
数组包括一些属性和方法,其最常用的属性则为 length,length 表示数组的当前长度,与其他语言不同的是,这个变量并非只读属性,比如:
var array = new Array(1, 2, 3, 4, 5);
print(array.length);
array.length = 3;
print(array.length);
print(array);
运行结果为:
5
3
1,2,3
注意到最后的 print 语句的结果是”1,2,3”,原因是对 length 属性的修改会使得数组后边的元素变得不可用(如果修改后的 length 比数组实际的长度小的话),所以可以通过设置 length 属性来将数组元素裁减。
另一个与其他语言的数组不同的是,字符串也可以作为数组的下标,事实上,在 JavaScript 的数组中,字符串型下标和数字型的下标会被作为两个截然不同的方式来处理,一方面,如果是数字作为下标,则与其他程序设计语言中的数组一样,可以通过 index 来进行访问,而使用字符串作为下标,就会采用访问 JavaScript 对象的属性的方式进行,毕竟 JavaScript 内置的 Array 也是从 Object 上继承下来的。比如:
var stack = new Array();
stack['first'] = 3.1415926;
stack['second'] = "okay then.";
stack['third'] = new Date();
for(var item in stack){
print(typeof stack[item]);
}
运行结果为:
number
string
object
在这个例子里,还可以看到不同类型的数据是如何存储在同一个数组中的,这么做有一 定的好处,但是在某些场合则可能形成不便,比如我们在函数一章中讨论过的 sum 函数, sum 接受非显式的参数列表,使用这个函数,需要调用者必须为 sum 提供数字型的列表(当然,字符串无法做 sum 操作)。如果是强类型语言,则对 sum 传入字符串数组会被编译程 序认为是非法的,而在 JavaScript 中,程序需要在运行时才能侦测到这一错误。
在线练习
{$ activeFileHint $}