浅谈数组与伪数组的区别

数组相信大家已经很熟悉了,那么这篇文章讲讲什么是伪数组以及数组与伪数组的区别

伪数组的定义

        拥有length属性,其他属性(索引)为非负整数

        不具有数组所具有的方法

常见的伪数组有:

        函数参数arguments,DOM对象列表;jQuery中的$(' ')等

伪数组与数组的区别

        索引(index)和长度(length)

                伪数组的索引,就是那些键值对的key,没有真正的顺序,长度是手动设置的属性

                数组的索引和长度是内置属性

        Array.prototype

                伪数组没有Array.prototype,它只是一个对象

                数组有Array.protype,他是对象的同时也是数组

判断是否是数组的方法

Array.isArray(arr)//方法一

arr instanceof Array//方法二

伪数组存在的意义

        让一些对象也可以使用数组方法,可以通过call(),bind(),apply()方法实现

        注:方法的返回值类型不会改变

伪数组转换成真实数组

        方法一:使用Array.from() --ES6

        方法二:使用数组的slice()方法,他返回的是数组,使用call或apply指向伪数组

        var arr = Array.prototype.slice.call (fArr) fArr--伪数组

        方法三:jq的makeArray(),toArray()方法,他们也可以实现伪数组转换数组的功能

        方法四:ES6解构赋值 var newArr=[...arguments]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值