ES5与ES6中伪数组转数组

伪数组:

1、以索引方式存储数据

2、必须带有length属性

ES5(Array.prototype.slice

let args = [].slice.call(arguments) // collection

let imgs = [].slice.call(document.querySelectorAll('img')) // NodeList

ES6(Array.from或扩展运算符)

let args = Array.from(arguments)

let imgs = Array.from(document.querySelectorAll('img'))

let arr = Array.from({ length: 5 })

扩展运算符(...)也可以将arguments对象NodeList对象转换成数组

let args = [...arguments]

let imgs = [...document.querySelectorAll('img')]

Array.from还可接收第二个参数:map函数,用来对数组的每个值做处理

如果map函数用到了this,Array.from还可以传入第三个参数:用来绑定this

Array.from()的另一个应用是,将字符串转为数组,然后返回字符串的长度。因为它能正确处理各种 Unicode 字符,可以避免 JavaScript 将大于uFFFF的 Unicode 字符,算作两个字符的 bug。

原文地址:https://www.cnblogs.com/allenzhang-920/p/12616406.html