毫无疑问,数组意识一个对象,拥有普通对象的所有功能,存储的性能比普通对象好
区别:普通对象使用字符串作为属性名,数组使用索引来操作元素
一.创建对象
1.使用构造函数创建数组
var a =new Array();
2.使用对象字面量来创建数组
var b=[--,--,--];
二.对象中的元素
对象中的元素可以为任意的数据类型(函数function(){}、数组[],对象)
三.对象中的方法
1.push()
在数组的尾部添加一个或多个元素
返回值:新数组的长度
2.pop()
删除数组的最后一个元素
返回值:删除的元素
3.unshift()
向数组的开头添加一个或多个元素
返回值:新数组的长度
4.shift()
删除数组的第一个元素
返回值:删除的元素
5.slice(start,end)(end若为负值,则从后往前数)
从数组中提取指定的元素(左闭右开)
6.splice(开始的位置索引,删除的个数,替换值...)
返回值:删除的元素
7.concat
连接一个或多个数组
数组一.concat(数组二)
直接将结果返回,不会对原数组造成影响
8.join()
将数组转换为字符串
默认元素之间的连接符为逗号,可以通过参数改连接符
直接将结果返回,不会对原数组造成影响
9.reverse()
将数组中的元素反转
更改原数组
10.sort()
排序
更改原数组
对数值的排序不一定准确,需要重写元素为数值的数组的sort()方法
arr.sort(function(a,b){
return a-b;//升序
return b-a;//降序
});
四.函数的方法
call() apply()
调用这两个方法都会调用函数
调用这两个方法都可以将一个对象作为第一个参数,实现了对象对方法的调用
其余的参数为实参对应的形参,不同的是apply()方法需要将实参封装在数组里进行统一传递
五.arguments
调用函数时,每次都会传递两个隐形的参数
1.this
2.arguments(类数组对象)
可以通过这个对象操作元素
arguments.length表示实参的个数
arguments[index]访问实参
arguments中还有一个属性callee,这个属性对应着一个函数对象,即当前正在执行的对象