说一说伪数组和数组的区别?
要点:类型是object、不能使用数组方法、可以获取长度、可以使用for in遍历
答:
伪数组它的类型不是Array,而是Object,而数组类型是Array。可以使用的length属性查看长度,也可以使用[index]获取某个元素,但是不能使用数组的其他方法,也不能改变长度,遍历使用for in方法。
伪数组的常见场景:
- 函数的参数arguments
- 原生js获取DOM:document.querySelector('div') 等
- jquery获取DOM:$(“div”)等
伪数组转换成真数组方法
- Array.prototype.slice.call(伪数组)
- [].slice.call(伪数组)
- Array.from(伪数组) 转换后的数组长度由
length属性决定。索引不连续时转换结果是连续的,会自动补位。