伪数组?一听到这个词懵了,知道js中有数组,竟然还有伪数组?
在面试过程中,面试官问的有些东西我们不是不会,而是被专业术语吓懵了
伪数组:就是无法使用数组的方法和api,但任然可以使用便利数组的方式遍历他们。
概念一出,好像有点明白了,但是什么才是真正的伪数组呢?其实伪数组我们经常见,如下:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<script type="text/javascript">
var li=document.getElementsByTagName("li");
console.log(li);
</script>
2020-08-10_231830.png
我们想要查找所有的li,结果给我们返回了一个数组格式的的列表,和数组非常像,但它并不是数组,数组中的API如 slice splice等它不能用,但它是可以被遍历的,它叫做NodeList(节点列表),是一个类数组对象。这种就是伪数组,当然伪数组还有函数的arguments参数
那我们如何把一个伪数组转换为一个真正的数组呢?可以使用
Array.prototype.slice.call()进行转换,接下来我们看一下转换过程:
2020-08-10_233140.png
网友评论