数组的特性
以下是《JavaScript高级程序设计》中对数组特性的定义
1. 当新的元素添加到列表时,自动更新length属性
2. 设置length为一个较小值将截断数组
3. 从Array.prototype中继承一些有用的方法
4. 其类属性为“Array”
类数组
在js中有一些对象它也拥有length属性,且拥有为非负整数的属性,但是它又不能调用数组的方法,这种对象被称为类数组对象
简单的一个类数组
var arrAlike={0:'a',1:'b',2:'c',length:3}
console.log(arrAlike)
Object {0: "a", 1: "b", 2: "c", length: 3}
0:"a"
1:"b"
2:"c"
length:3
__proto__:Object
HTMLCollection,Arguments是两个经典的类数组对象
HTMLCollection
<div></div>
<div></div>
<div></div>
var divs = document.getElementsByTagName('div')
console.log(divs)
(3) [div,div,div]
0:div
1:div
2:div
length:3
__proto__:HTMLCollection
Arguments
function foo(){
console.log(arguments)
}
foo('a','b','c')
[object Arguments] {
0: "a",
1: "b",
2: "c"
}
类数组转化为数组
类数组虽然无法直接使用数组的方法,但是可以间歇的使用 Function.call方法调用Array.prototype的方法。
如下:
var arrAlike={0:'a',1:'b',2:'c',length:3}
var arr = Array.prototype.slice.call(arrAlike)
console.log(arr)
(3) ['a','b','c']
以上是我在学习javaScript过程中做的一些总结,如有不足之处,还请指正