数组可以容纳任何类型的值,且不需要预先设定大小.
使用delete删除项目数组的length不会发生改变.就变成了稀疏数组.
var array = [0,1,2];delete array[1];array;//[0, 空, 2]array.length;//3
稀疏数组(sparse array), 即含有空白或空缺单元的数组
也就是说数组中的’空’元素,不会影响数组的长度.
访问空元素,会返回undefined,但这与直接赋值为undefined有所区别.TODO…
var array = [];array[0] = 1;array[2] = 2;array[1];//undefinedarray.length;//3
数组也是对象,可以添加字符串属性,但是不计算长度
var array = [0,1,2];array['footer'] = 'footer';array.length;//3
但是如果字符串属性可以被转换成十进制数字的话,会被当作数组索引.
var array = [0,1,2];array['3'] = '3';array;//[0, 1, 2, "3"]
类数组对象
一些dom操作会返回dom元素(NodeList)列表以及函数的参数,他们属于类数组,没有数组的方法
:::info
数组的原型链
myArray —> Array.prototype —> Object.prototype —> null
:::
:::info
NodeList 的原型链
myNodeList —> NodeList.prototype —> Object.prototype —> null
:::
转换成数组
function foo(){//slice()返回参数列表的一个数组复本var array = Array.prototype.slice.call(arguments);array.push('item');console.log(array);//[1, 2, "item"]}foo(1,2)
function doo(){var array = Array.from(arguments);array.push('item');console.log(array);//[1,2,'item']}doo(1,2)
