类数组
1、可以利用属性名模拟数组的特性
2、可以动态的增长 length 属性
3、如果强行让类数组调用 push 方法,则会根据length 属性值的位置进行属性的扩充。
类数组:本质是一个对象,只是这个 对象 的属性有点特殊,模拟出数组的一些特性,没有数组的方法。
<script>
function functionName() {
console.log(arguments);
arguments.push(7);
}
functionName(1, 2, 3, 4, 5, 6);
</script>
如果给一个对象加上 splice 方法,那么这个对象就长得像数组了。但他仍然是对象,但是可以当做数组来用,需要自己添方法。
<script>
var test = {
0: 'a',
1: 'b',
2: 'c',
length: 3,
push: Array.prototype.push,
splice: Array.prototype.splice,
}
</script>
类数组对象毕竟本质上是一个Object,而不是真正的Array,那么二者的区别在哪里呢?
1、一个是对象,一个是数组
2、数组的length属性,当新的元素添加到列表中的时候,其值会自动更新。类数组对象的不会。
3、设置数组的length属性可以扩展或截断数组。
4、数组也是Array的实例可以调用Array的方法,比如push,pop等等。