伪数组:
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