7.JavaScript中的数组
1.数组的定义
数组时按照次序排列的一组值,每个值的位置都是从0开始,整个数组用方括号表示。
var arr=['a','b','c'];
除了在定义时赋值,数组还可以先定义后赋值。
var arr = [];
arr[0] = 'a';
arr[1] = 'b';
arr[2] = 'c';
任何类型的数据,都可以放入数组中。
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;}
上面的arr数组中,第一个数据是对象,第二个数据是数组,第三个数据是一个函数。
如果数组的元素还是数组,就形成可多为数组。
2.数组的本质
本质上,数组属于一种的对象,typeof运算符返回的数组类型是object
数组的特殊体现在,它的键名是按次序排列的一组整数。
由于数组的键名是固定的,所以不必为威哥元素指定键名,而对象吃的背个成员都必须指定键名。
特大新闻:JavaScript中,对象的键名一律为字符串,所以,数组的键名其实也是字符串,之所以可以用数值读取,那是应为数字键名将会转换为字符串。
3.数组的length属性
数组的length属性,返回数组的成员数量。
['a', 'b', 'c'].length // 3
只要是数组,就一定有length长度的属性,该属性是动态变化的,等于键名中的数量加1。
可以根据length的属性可删除和添加元素,获取清空元素。
var arr = [ 'a', 'b', 'c' ];
arr.length // 3
arr.length = d;
arr // ["a", "b", "c", "d" ]
var arr = [ 'a', 'b', 'c' ];
arr.length // 3
arr.length = 2;
arr // ["a", "b"]
var arr = [ 'a', 'b', 'c' ];
arr.length = 0;
arr // []
4.类似数组的对象
如果一个对象中,有一个属相为length:% ,我们就可以认为它是一个数组对象,它看上去像数组,但是无法使用数组的方法。这就是类似数组的对象。
var obj = {
0: 'a',
1: 'b',
2: 'c',
length: 3
};
obj[0] // 'a'
obj[2] // 'c'
obj.length // 3
obj.push('d') // TypeError: obj.push is not a function
5.in运算符
检查某一个键名是否存,适用于对象,也适用于数组
var arr = [ 'a', 'b', 'c' ];
2 in arr // true
'2' in arr // true
4 in arr // false
6.循环和数组的遍历
for---in循环不仅可以遍历对象,也可遍历数组,毕竟数组只是一种特殊的对象。
var a = [1, 2, 3];
for (var i in a) {
console.log(a[i]);
}
// 1
// 2
// 3
for---in遍历时,会遍历出非整数键,所以不建议使用,可以使用,for和while用来循环遍历。
var a = [1, 2, 3];
// for循环
for(var i = 0; i < a.length; i++) {
console.log(a[i]);
}
// while循环
var i = 0;
while (i < a.length) {
console.log(a[i]);
i++;
}
var l = a.length;
while (l--) {
console.log(a[l]);
}
var colors = ['red', 'green', 'blue'];
colors.forEach(function (color) {
console.log(color);
});
张磊,技术菜鸟一枚,在web开发中一直苦苦挣扎,追求上岸!
联系QQ:1908002007
有技术问题可以随时联系,闲聊也是可以的!欢迎打扰!