1.任何类型的数据,都可以放入数组。
var arr = [
{a: 1},
[1, 2, 3],
function() {return true;}
];
arr[0] // Object {a: 1}
arr[1] // [1, 2, 3]
arr[2] // function (){return true;}
2.数组是一种动态的数据结构,可以随时增减数组的成员。
['a', 'b', 'c'].length // 3
var arr = [ 'a', 'b', 'c' ];
arr.length // 3
arr[1000] = 'e';
arr.length // 1001
arr.length = 0;
arr // []
3.如果数组的某个位置是空位,in
运算符返回false
。
4.length
属性不过滤空位。
5.空位就是数组没有这个元素,所以不会被遍历到,而undefined
则表示数组有这个元素,值是undefined
,所以遍历不会跳过。
5.如果一个对象的所有键名都是正整数或零,并且有length
属性,那么这个对象就称为“类似数组的对象”(array-like object)。
6.slice和call方法可以将“类似数组的对象”变成真正的数组。
7.对象的键名一律为字符串,所以,数组的键名其实也是字符串。之所以可以用数值读取,是因为非字符串的键名会被转为字符串。
var arr = ['a', 'b', 'c'];
arr['0'] // 'a'
arr[0] // 'a'
var a = [];
a[1.00] = 6;
a[1] // 6