js 类数组

类数组

  • 属性从0开始排,依次为0,1,2…,具备callee和length等属性,但没有数组其他丰富的方法。

常见的类数组

  • dom 选择器选择的 DOM 列表、DOM 属性列表等
  • 函数的 arguments 参数
  • TypeArray 类型数组
    • 如 Uint8Array 等
  • FileList
  • window
  • DataTransferItemList
  • localStorage 等

类数组和数组判断差别

				数组 			 	类数组
toString		[object Array]	 	[object Object]
instanceof		Array			 	Object
constructor 	[Function: Array]	[Function: Object]
Array.isArray	true				false

类数组调用数组方法

  • 通过apply、call等改变this指向等方法即可调用。(离谱)
function f(a, b) {
   Array.prototype.map.call(arguments, (item) => {
     console.log(item);
   });
}

类数组转换成数组

  • Array.prototype.slice.call()
 //slice不传参数会切片整个数组
 let arr = Array.prototype.slice.call(arguments);
  • Array.from()
 let arr = Array.from(arguments);
  • 解构
let arr = [...arguments];
  • concat + apply
//注意这里不能是call, 利用 apply 传递的参数数组默认会被展开的特性
let arr = Array.prototype.concat.apply([], arguments);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值