在javascript中什么是伪数组?如何将伪数组转换为标准数组

2020-08-10  本文已影响0人  乔乔_老师

伪数组?一听到这个词懵了,知道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

其实挺简单!!!!!

上一篇下一篇

猜你喜欢

热点阅读