您的位置:首页 > Web前端 > JavaScript

JavaScript语言精粹——数组

2016-03-30 23:45 513 查看
数组是一段线性分配的内存,它通过整数去计算偏移并访问其中的元素,JavaScript提供了一种拥有一些类数组特性的对象。
1.数组字面量
①一个数组字面量是在一对方括号中包围0或多个用逗号分隔的值的表达式,数组字面量可以出现在任何表达式可以出现的地方。
②JavaScript允许数组包含任意混合类型的值

2.长度
①JavaScript数组的length属性没有上界,如果使用大于或者等于当前length的数字作为下标保存一个元素,那么length将增大来容纳新元素,不会发生数组边界错误。
②length属性的值是这个数组的最大整数属性名+1,不一定等于数组中的属性个数。
myArray[10000]=true;    myArray.length //10001
③[]后缀下标运算符将它的表达式转换成一个字符串,如果该表达式有toString方法,就使用该方法的值。
④设置更大的length无需给数组分配更多空间,而把length设小将会导致所有下标大于等于新length的属性被删除。
⑤将下表指定为一个数组的当前length,可以附加一个新元素到该数组尾部
numbers[numbers.length]='new';
⑥push方法可以将新元素添加到数组末尾。numbers.push('go');

3.删除
①由于JavaScript数组其实就是对象,所以delete运算符可以用来从数组中移除元素。但通过delete删除后,被删除位置的元素会被替换为undefined,并不会递减后边元素的下标。
②数组的splice方法可以删除元素并且将它们替换为其它元素,第一个参数是数组内的一个序号,第二个是要删除的元素的个数。
任何额外的参数都会在序号那个点的位置被插入数组中。

4.枚举
①因为数组是对象,所以for in语句可以用来遍历一个数组的所有属性,但无法保证顺序。不过常规的for语句可以避免这个问题。
for (var i=0;i<myArray.length;i++){document.writeln(myArray[i]);}

5.混淆点
①JavaScript中,有时会在需要使用数组时使用了对象,或者在需要使用对象时使用了数组。规则:当属性名是小而连续的整数时,应该使用数组,否则应该使用对象

6.方法
①JavaScript提供的作用于数组的方法被储存在Array.prototype中。Array.prototype可以被扩充。
②数组其实就是对象,所以可以给一个单独的数组添加方法。

7.维度
①JavaScript数组通常不会初始化,若用[]得到一个新数组,它将是空的。
②JavaScript没有多维数组,它支持元素为数组的数组。

var matrix=[
[0,1,2],
[3,4,5],
[6,7,8]
];
matrix[2][1] //7
//为了创建一个二维数组或者一个元素为数组的数组,必须自己创建第二维数组。
for (i=0;i<n;i++){
    my_array[i]=[];
}
//一个空矩阵的每个单元拥有一个初始值undifined.如果希望有不同的初始值,必须明确设置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: