1、Array.from()
Array.from(arrayLike[, mapFn[, thisArg]])
作用:将两类对象转成数组,类似数组的对象和可遍历(iterable)的对象。
类似数组对象,本质特征只有一点,必须有length属性。常见有NodeList集合,arguments对象,{length: 2} 可遍历(iterable)的对象有字符串、Set结构等具有Iterator接口。处理字符串时,可以避免将大于\uffff的Unicode字符串算作2个字符处理的bug。
注意:扩展运算符只能将可遍历(iterable)的对象转成数组
Array.from({length: 2}, () => 'jack')
//['jack', 'jack']
Array.from('hello')
//['h', 'e', 'l', 'l', 'o']
let nameSet = new Set(['a', 'b'];
Array.from(nameSet)
//['a', 'b']
2、Array.of()
Array.of(element0[, element1[, ...[, elementN]]])
作用:将一组数值转成数组。不会因为参数不同,有不同的作用。
new Array()或Array()的缺点:只有一个参数指定数组长度。两个参数或者以上返回由参数组成的数组。
Array()//[]
Array(3)//[,,,]
Array(3,4,5)//[3,4,5]
Array.of()//[]
Array(undefined)//[undefined]
Array(3)//[3]
Array(3,4,5)//[3,4,5]
3、Array.isArray()
Array.isArray(obj)
作用:判断是否是数组
Array.isArray([]) //true
Array.isArray({length: 3}) //false
Array.isArray({__proto__:Array.prototype}) //false
Array.isArray()