es6第一天要点:
1、Iterator
Array,Object,Map,Set都是一种集合,既然是集合,那遍历便是一种基本需求,而Iterator就是为了提供一种统一的接口机制。任何的数据结构,只要部署了Iterator接口,便可以使用类似的方式完成遍历操作。
es6中有几类结构生来就具有Iterator接口:数组、类数组对象、Map和Set结构
Iterator有2个作用,它使数据结构的成员按某种次序排列,而对象,各成员并没有一个确定的顺序,所以遍历时先遍历谁后遍历谁并不确定。所以,给一个对象部署iterator接口,其实就是对该对象做一种线性转换。es6有一种新的遍历方式:for...of,而Iterator的主要作用,就是支持此操作。
2、let和const
两者都只在声明所在的块级作用域内有效,不存在变量提升,也就是说必须在声明的位置后面才能使用。
例:var temp = 123
if(true){
temp = '456' //报错
let temp
}
因为存在全局变量temp,但块级作用域let又声明了一个局部变量temp,使后者绑定了这个块级作用域,所以在let声明变量前,对temp赋值会报错。
网友评论