类数组和数组转换

看到数组和类数组我们首先要思考几个问题。在这里写出了我的想法
1、数组和类数组对象有什么区别?

数组定义:简而言之就是一组有序的数据集合,其索引为从0开始且自然增长的整数,其元素值可以是任何js数据!并且包含一个名为length的属性,该属性表示数组元素的个数!

类数组对象:1)它拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理);
2)最主要的区别:类数组对象不能调用数组原型上的方法。就是:xx.push()、xx.slice()、xx.indexOf()等等这些方法都不能用
2、类数组对象怎么产生?
javascript中常见的类数组有 arguments对象和 DOM方法的返回结果。
比如:
document.getElementsByTagName()。
3、我怎么知道一个东西是类数组对象?
类数组是指在写法上跟数组一样,比如argumens,函数的第一个参数是argument[0],写法上跟数组一样,但是不是数组,他的原型是Object。
4、为什么经常把类数组转化成数组?以及如何转换?
由于类数组不具有数组所具有的操作数组的方法,讲类数组转换为数组之后就能调用如shift,unshift,splice,slice,concat,reverse,sort等这些强大的方法,方便快捷。

类数组转化成数组的方法:
说一下我感觉最容易理解的一种
一、var arr = Array.prototype.slice.call(arguments)或者
var arr = [].slice.call(arguments)
1、Array.prototype.slice.call(arguments)
这种方法是借用了数组原型中的slice方法,返回一个数组。slice方法的内部实现:
Array.prototype.slice.call(arguments)的结果是将arguments对象转换成一个Array对象。所以其后面可以直接调用数组具有的方法
还有一些方法不太熟悉 下次再说~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值