序言
Array
Array应该就是ECMAScript中最常用的类型了。ECMAScript数组跟其他编程语言的数组有很大区别。跟其他语言中的数组一样,ECMAScript数组也是一组有序的数据,但跟其他语言不同的是,数组中每个槽位可以存储任意类型的数据。这意味着可以创建一个数组,它的第一个元素是字符串,第二个元素是数值,第三个是对象。ECMAScript数组也是动态大小的,会随着数据添加而自动增长。
创建数组,子变量和构造对象的方式都可以创建,但是当你要指定个数的时候,你就只能通过构造对象方式去创建。
// 字面量创建
let arr = ["张三"]
// 构造对象创建
let arr = new Array()
// 比如你要指定数组长度是20个,那么你要这样创建
let arr = new Array(20)
啥叫可迭代结构,通常来讲就是可以遍历,比如像字符串,对象,map,set等结构 Array构造函数还有两个ES6新增的用于创建数组的静态方法:from()和of()。from()用于将类数组结构转换为数组实例,而of()用于将一组参数转换为数组实例
// 比如你获取到dom容器集合,此时你要想把它转化为数组,那么你可以用Array.from
let divs = document.querySelector("div") // divs是伪类数组,具有length属性,但是不是真实的数组;那么此时要转化为数组,你可以用Array.from去转化他,
divs = Array.from(divs);
Array.from()的第一个参数是一个类数组对象,即任何可迭代的结构,或者有一个length属性和可索引元素的结构。这种方式可用于很多场合:
let str = "中国是世界大国";
// 如果用Array.from去转化他,此时会返回什么呢?
str = Array.from(str)
cosole.log(str) // 此时会打印出来
// ['中', '国', '是', '世', '界', '大', '国'],
// 而再也不用字符串的切割方法了split方法了
// 像函数参数列表也是可以用Array.from转换成数组
function a(args){
let arguments = Array.from(args)
// 此时arguments就是数组了
}
Array.of
Array.of()可以把一组参数转换为数组。这个方法用于替代在ES6之前常用的Array.prototype.slice.call(arguments),一种异常笨拙的将arguments对象转换为数组的写法:
例如
Array.of(1,2,4))