ECMAScript6
迭代器
迭代器 (Iterator)是一种接口,为各种不同的数据结构提供统一的访问机制。 任何数据结构只要部署lterator 接口,就可以完成遍历操作。
- ES6 创造了一种新的遍历命令for..of 循环,lterator 接口主要供 for..of 消费
- 原生具备iterator 接口的数据(可用 for of 遍历)
- Array
- Arguments
- Set
- Map
- String
- TypedArray
- NodeList
3) 工作原理
a)创建一个指针对象,指向当前数据结构的起始位置
b)第一次调用对象的next 方法,指针自动指向数据结构的第一个成员
c)接下来不断调用next 方法,指针一直往后移动,直到指向最后一个成员
d)每调用 next 方法返回一个句含valve 和done 属性的对象
注️:需要自定义遍历数据的时候,要想到迭代器。
生成器
生成器其实就是一个特殊的函数
function * gen(){ console. log ("hello") } let iterator = gen() ; console.log(iterator);
yield是函数代码的分隔符
function * gen(){ console. log (1); yield'啦啦啦我是一'; console.1og (2); yield'啦啦啦我是0'; console. log(3); yield'啦啦啦'; console. log (4); }
Promise
promise 是 ES6 引入的异步编程的新解决方案。语法 上Promise 是一个构造函数 用来封裝异步辕花并可以获取其成功或失败的结果。
- Promise 构造函数:Promise (excutor) {}
- Promise.prototype.then 方法
- Promise.prototype.catch 方法
Map
ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合。但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。Map 也实现了iterator 接口,所以可以使用「扩展运算符』和「for..of..』进行遍历。 Map的属性和方法:
- size返回 Map 的元素个数
- set增加一个新元素,返回当前 Map
- get返回键名对象的键值
- has检测 Map 中是否包含某个元素,返回 boolean 值。
- clear清空集合,返回 undefined。
class 类
ES6 提供了更接近传统语言的写法,引入了 Class(类)这个概念,作为对象的模板。通过class 关键字,可以定义类。基本上,ES6 的class 可以看作只是一个语法糖,它的绝大部分功能,ES5 都可以做到,新的class 写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而己。
知识点:
1)class 声明类
2)constructor 定义构造函数初始化
3)extends 继承父类
4)super 调用父级构造方法
5)static 定义静态方法和属性
6)父类方法可以重写