数组:值的有序集合。
元素:数组中的每一个值
索引:每个元素在数组中的位置,用基于0的32位数值表示
1.javascript数组是动态的。根据需要会增长或者缩减。初始创建时无需声明一个固定大小,数组大小变化无需重新分配空间。
2.可能是稀疏的,索引不一定连续
创建数组
数组直接量创建
var misc=[1.1 ,ture, ,"a",{x:1},[2,3]];//值为常量,省略值为undefined,可以包含其他对象直接量或者数组直接量
var table=[base,base+1,base+2];//值为任意表达式
调用构造函数Array()创建
var a=new Array();//无参,空数组
var a=new Array(10);//指定长度,预分配一个数组空间,但没有存储值,索引甚至都没定义
var a=new Array(1,2,3,"test1,test2");//显式指定元素
数组元素的读和写
var a=["world"];
var v=a[0];//读出"world"
a[1]=hello;//写入得a=["world","hello"]
1.数组索引,是对象属性名的一种特殊类型。
2.意味着javascript没有“越界”的说法,查询属性不存在时,不会报错,只会得到undefined
3.因为数组是对象,所以可以从原型继承元素。可以定义元素的getter和setter方法
稀疏矩阵
创建系数矩阵
1.Array()创建
a=new Array(5);
a[1000]=1;//通过赋值添加一个元素,length为1001
2.delete
元素undefined和不存在的区别
var a=[,,,];//[undefined,undefined,undefined]
var b=new Array(3);//空元素数组
0 in a;//true
0 in b;//false
数组长度
1.数组索引i大于等于数组长度,length就设置为i+1
2.设置length小于当前数组长度,相当于删除length后的元素
数组方法
见第二章Array()对象总结
数组类型
Array.isArray([])//true
Array.isArray({})//false
//在ECMScript3中的类似isArray()函数的代码
var isArray=Function.isArray||function(o){
return typeof==="object"&&
Object.prototype.toString.call(o)==="[object Array]";
}
类数组对象
var a={};
var i=0;
while(i<10){
a[i]=i*i;
i++;
}
a.length=i;