伪数组
伪数组它的类型不是Array,而是Object,而数组类型是Array。可以使用的length属性查看长度,也可以使用[index]获取某个元素,但是不能使用数组的其他方法,也不能改变长度,遍历使用for in方法。
伪数组就是一个长得像数组有
length
和[ ]成员但又不是真的数组,不能用数组傻瓜吗的方法比如push,shift
常见的伪数组:arguments
,getElementsByTagName和document.querySelectorAll,getElementsByClassName以及
getElementsByClassName等获取的NodeList对象和
jQuery对象,比如
$(“div”)`
真数组
//真数组
let a=[1,2,3,4,5,6,7]
a.push(10)
const m=a.shift()
console.log(m);
console.log(a);
伪数组
//伪数组
arguments
//伪数组
function q(w,e,r,t,m){
arguments.shift()
arguments.push("s")
console.log(arguments);
}
const mm=new q("夕阳",'西下',"断肠人","在天涯")
DOM的子节点
看一下argumnts和 DOM的子节点
他们长得都很像数组
伪数组怎样使用数组里面的方法
就是应数组原型上面的call方法
具体操作如下
Array.prototype.slice.call(你要操作的伪数组)
slice() 方法以新的数组对象,返回数组中被选中的元素。
slice() 方法选择从给定的 start 参数开始的元素,并在给定的 end 参数处结束,但不包括。
这个方法接收到的就是一个真数组,call(用apply)指向这个真数组 slice不传参就返回这一个数组