1 数组是js里的数据类型,数组是值的有序集合,数组元素可以是任意类型,一个数组元素可以是不同类型。
//如下定义,默认 索引 从0开始
var user = [“yangfutao”, ‘lily’, 100]
2 数组的索引是基于0的数字,大小范围是0-(2的32次方-2)
,数组的索引不一定是连续的,索引不连续的数组称为稀疏数组,省略的索引值为 undefined 。
示例如下:
//修改元素
user[2] = 300;
//增加 元素,自定义索引
user[‘age’] = 28;
user[5] = ‘jim’;
//删除元素,元素删除后,值变成了undefined ,但是length是不会变的
delete user[2]
delete user[‘age’]
//删除后的结果length还是6
3 每个数组都有length的属性,
示例如下:
//数组大小,以数字索引大小为准
var books = [‘ c++ ‘, ‘java’];
books.length // 2
books[5] = ‘php’;
books.length // 6 ,实际上,这时前面的索引为0,1,2,3,4,5,都是undefined
books[‘new’] = ‘go’;
books.length // 仍然是6,实际上,非数字索引不管增加多少个,对数组的length都没有影响,这是为什么呢,
//看到这里 可能会觉得有些奇怪,为什么js的数组和其他语言的数组差距这么大,其实通过上面的例子,数组的类型是object, 字符串 类型的数组元素被当做了object的属性,所以并不会影响到数组的length属性
4 字符串索引和数字索引函数的不同
示例如下:
var address = [‘shenzhen’, ‘guangzhou’];
//address 可以作为数组操作 pop()等
var address1 = [];
address1[‘sz’] = ‘shenzhen’;
address1[‘gz’] = ‘guangzhou’;
//address1 不可以作为数组操作 pop()为undefined
所以,如果是字符串属性,就要小心操作,最好直接
把数组声明成对象来操作!