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

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

其实挺简单!!!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容