数组 (array)
是按次序排列的一组值。
任何类型的数据,都可以放入数组。
数组的本质
-本质上,数组属于一种特殊的对象。typeof运算符会返回数组的类型是object。
-由于数组成员的键名是固定的(默认总是0、1、2...),因此数组不用为每个元素指定键名,而对象的每个成员都必须指定键名。JavaScript 语言规定,对象的键名一律为字符串,所以,数组的键名其实也是字符串。之所以可以用数值读取,是因为非字符串的键名会被转为字符串。
-对象有两种读取成员的方法:点结构(object.key)和方括号结构(object[key])。但是,对于数值的键名,不能使用点结构。
length 属性
只要是数组,就一定有length属性。
清空数组的一个有效方法,就是将length属性设为0。
in 运算符
检查某个键名是否存在的运算符in,适用于对象,也适用于数组。
for...in 循环和数组的遍历
for...in循环不仅可以遍历对象,也可以遍历数组,毕竟数组只是一种特殊对象。但是,for...in不仅会遍历数组所有的数字键,还会遍历非数字键。
数组的空位
var a = [1, , 1];
a.length // 3
类似数组的对象
如果一个对象的所有键名都是正整数或零,并且有length属性,那么这个对象就很像数组,语法上称为“类似数组的对象”(array-like object)。
但是有一个问题,这种length属性不是动态值,不会随着成员的变化而变化。
典型的“类似数组的对象”是函数的arguments对象,以及大多数 DOM 元素集,还有字符串。
网友评论